Mi problema es que al controlar los resutlados de la consulta muchas veces no trae los resultados correctos y no logro entender porque
Código PHP:
$toperacion = (isset($_GET['toperacion'])) ? trim($toperacion) : '';
$toperacion = mysql_real_escape_string($toperacion);
$toperacion2 = (isset($_GET['toperacion'])) ? trim($toperacion2) : '';
$toperacion2 = mysql_real_escape_string($toperacion2);
include 'db.php';
//paginacion
$tamPag = 10; //cantidad de registros pòr página
// detectar si la variable $pagina (indica el numero de pagina actual) esta definida,
//si no es así le damos el valor 1 ósea que si no se paso por la url la variable $pagina (por ejemplo: "paginacion.php?pagina=2") entramos a la pagina 1 directamente...
$pagina = $_GET["pagina"];
if (!$pagina)
{ $inicio = 0; $pagina = 1; }
else
{ $inicio = ($pagina - 1) * $tamPag; }
//realizamos 2 consultas similares en cuanto a su criterio de selección
//Con la primer consulta obtenemos el numero de registros totales.
// Count Utilizada para devolver el número de registros de la selección
$sql="SELECT COUNT(*) FROM avisos WHERE tpropiedad='".$tpropiedad."' AND (toperacion='".$toperacion."' OR toperacion='".$toperacion2."' OR toperacion2='".$toperacion."' OR toperacion2='".$toperacion2."')" ;
//echo $sql;
$res=mysql_query($sql);
$numeroRegistros = mysql_num_rows($res);
list($numeroRegistros) = mysql_fetch_row($res);
if ($numeroRegistros <=0)
{ echo "<div align='center'>";
echo "<font color='darkgray' size='3'>No se encontraron Avisos que coicidan con su busqueda<b></font>";
echo "</div>"; }
$sql2="SELECT * FROM avisos WHERE tpropiedad='".$tpropiedad."' AND (toperacion='".$toperacion."' OR toperacion='".$toperacion2."' OR toperacion2='".$toperacion."' OR toperacion2='".$toperacion2."') ORDER BY valor ASC LIMIT $inicio, $tamPag" ;
echo $sql2;
$res=mysql_query($sql2);
//ceil devuelve el valor entero más alto con respecto al número que se ha pasado como argumento a la función:
//calculo del numero de paginas
$numPags = ceil($numeroRegistros / $tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;
if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}
if ($final>$numPags){
$final=$numPags;
}
}
if($numeroRegistros) {
while ($row=mysql_fetch_array($res))
{
$valor='U$S '.$row["valor"];
echo '<tr ><td valign="TOP"><font color="black"><font size="3"><img src="http://www.forosdelweb.com/f18/images/productos/'.$row["imagen1"].'" alt="" width="90" height="75"></td>';
echo '<td valign="TOP"><div align="left"><font color="black"><font size="2">'.$row["txt"].'</div></td>';
echo '<td valign="TOP"><font color="red"><font size="3"><b>'.$valor.'<br>'.$row["fpago"].'</b></td>';
if($row["premium"]=="Si")
{ echo '<td valign="TOP"><a href="verAviso2.php?idAviso='.$row["idAviso"].'"><img src="http://www.forosdelweb.com/f18/images/masInfo.png" alt="Ver más detalles " width="40" height="40" ></td></tr>'; }
if($row["premium"]=="No")
{ echo '<td valign="TOP"><img src="http://www.forosdelweb.com/f18/images/InfoNoDisp.png" alt="Información complementaria no disponible"width="60" height="60" ></td></tr>'; }
}
}
}
?>
<br>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td align="center" valign="top">
<?
//Para comprobar la cantidad de resultados arrojados por la consulta mysql_num_rows
if($numeroRegistros>0)
{echo "<font color='darkgray'><font size='2'><b>Resultado : </b>"." ".$numeroRegistros." avisos";
echo "<BR>";
}
if($pagina>1) {
echo "<img src='../images/flecha1.gif'width='10' height='10'>";
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&tpropiedad=".$tpropiedad." & toperacion=".$toperacion."& toperacion2=".$toperacion2."'>";
echo"<font face='verdana' size='2'> Anterior </font>";
echo "</a> ";
}
for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font color='black'>"." Página ";
echo "<font face='verdana' size='2'><font color='black'><b>".$i." de".$numPags."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."& tpropiedad=".$tpropiedad."& toperacion=".$toperacion." & toperacion2=".$toperacion2."'>";
echo "<font face='verdana' size='2'><font color='black'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."& tpropiedad=".$tpropiedad."& toperacion=".$toperacion." & toperacion2=".$toperacion2."'>";
echo "<font face='verdana' size='2'> Siguiente </font></a>";
echo "<img src='../images/flecha2.gif'width='10' height='10'>";
}
//////////fin de la paginacion
toperacion y t operacion2 son para determinar si se busca venta , alquiler, permuta , etc.
Entonces la primer condicion debe cumplirse siempre que sea una
casa ,no puede traerme avisos de apartamentos.
La segunda condicion debe compàrar entre los uno o dos tipos de operacion que puede elegir el usuario y compararlos con los dos campos de tipo de operacion que tienen cada aviso
El usuario puede elegir dos tipos de operacion y en el aviso existen dos campos con ese fin .
Debe comparar ambos y largar todos los resultados que tengan una de las dos opcioenes
Pero me llega a incluiir en los listados registros que no tienen ninguna de las dos tipo de operaciones. y no logro comprender que hago mal
Gracias por orientarme pues hace dias que no logro salir de este punto