Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2008, 06:14
Avatar de acousticgerman
acousticgerman
 
Fecha de Ingreso: abril-2004
Ubicación: Merlo, buenos aires
Mensajes: 364
Antigüedad: 20 años, 10 meses
Puntos: 1
De acuerdo Error Al Consultar Registros Y Paginarlos

Hola a todos, hace tiempo hice un formulario busqueda por palabra clave para realizar consultas a una base de datos y paginar los resultados de acuerdo a la palabra que se ponga en el buscador.
En un principio me funcionó bien, pero ahora no está funcionando y me tira el siguiente error:




a. ERROR:

Número de registros encontrados: 451
Se muestran páginas de 7 registros cada una
Mostrando la página 1 de 65

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/httpd/misitioweb.com.ar/public_html/paginacion.php on line 216

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/httpd/misitioweb.com.ar/public_html/paginacion.php on line 242


-------------------------------------------------------------

b. ESTE ES EL FORMULARIO DE BUSQUEDA (catalogo.html)


<form method = "get" action="paginacion.php">
<strong>Si no conoce el código del producto realice una<br>Busqueda libre:</strong><br>
<input type="text" name="criterio" size="20" />
<input type="submit" value="Buscar" />
</form>



------------------------------------------------------------



c. ESTE ES EL CÓDIGO DEL ARCHIVO QUE PROCESA Y MUESTRA LOS DATOS (paginacion.php)





<div class="floatleft2">
<p class="margin3">

<table width="80%" border="0" bordercolor="none" bgcolor="black" align="center">
<td width="100%"><font color="#ffffff" size="1" face="Arial">Resultados por Nº de Código</font></td>
</tr>
</table>

<table width="80%" border="1" bordercolor="gray" bgcolor="gray" align="center">


<tr>
<td width="10%" bgcolor="gray">Código</td>
<td width="40%" bgcolor="gray">Descripción</td>
<td width="10%" bgcolor="gray">Original</td>

<td width="10%" bgcolor="gray">Foto</td>
</tr>




// CONECTO A LA BASE DE DATOS Y DETERMINO AL CAMPO "DESCRIPCION" COMO EL CAMPO EN EL QUE SE VAN A BUSCAR LAS COINCIDENCIAS CON LA PALABRA ESCRITA EN EL BUSCADOR


<?
//conecto con la base de datos
$conn = mysql_connect("localhost","nombre_tabla","password ");
mysql_select_db("nombre_basededatos",$conn);

//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where DESCRIPCION like '%" . $txt_criterio . "%'";
}

//Limito la busqueda
$TAMANO_PAGINA = 7;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}

//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from articulos " . $criterio;
$rs = mysql_query($ssql,$conn);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);

//pongo el número de registros total, el tamaño de página y la página que se muestra



echo "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";




//construyo la sentencia SQL
$ssql = "select CODIGO_EMPRESA, DESCRIPCION, CODIGO_ORIGINAL, FOTO from articulos " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;


// MUESTRO LOS RESULTADOS EN COLUMNAS DE LOS SIGUIENTES CAMPOS:



$rs = mysql_query($ssql);

while ($fila = mysql_fetch_object($rs)){
echo "<table width=\"80%\" bgcolor=\"gray\"><tr>
<td width=\"10%\" border=\"1\" bgcolor=\"white\"><font color=\"black\" size=\"1\" face=\"Arial\">$fila->CODIGO_EMPRESA</font></td>

<td width=\"40%\" border=\"1\" bgcolor=\"white\"><font color=\"black\" size=\"1\" face=\"Arial\">$fila->DESCRIPCION</font></td>

<td width=\"10%\" border=\"1\" bgcolor=\"white\"><font color=\"black\" size=\"1\" face=\"Arial\">$fila->CODIGO_ORIGINAL</td>




<td width=\"10%\" border=\"1\" bgcolor=\"white\"><font color=\"black\" size=\"1\" face=\"Arial\">$fila->FOTO</font></td></p>
</tr>
</table>
";

}

?>




//CIERRO LA CONEXIÒN

<?
mysql_free_result($rs);
mysql_close($conn);
?>




<p class="margin3">

<table width="80%"><tr>
<td color="blue"><font color="blue">



// AQUÌ ARMO LA PAGINACIÒN DE LOS RESULTADOS


<?

if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo " <a href='paginacion.php?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}



?>
</font></td></tr></table>

</div>




-----------------------------------------------


Cabe destacar que los datos que conectan a la base están bien.


GRAZIEEEEEE
__________________
"Life goes on..."