Foros del Web » Programando para Internet » PHP »

buscador php

Estas en el tema de buscador php en el foro de PHP en Foros del Web. hola favor mirar este codigo este es del buscador <form action="resultados.php" method="post"> <select name="tipobusqueda"> <option value="in_autor">Autor </option> <option value="in_titulo">Título </option> <option value="in_isbn">ISBN </option> </select> <input ...
  #1 (permalink)  
Antiguo 25/11/2009, 15:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
buscador php

hola
favor mirar este codigo
este es del buscador


<form action="resultados.php" method="post">
<select name="tipobusqueda">
<option value="in_autor">Autor </option>
<option value="in_titulo">Título </option>
<option value="in_isbn">ISBN </option>
</select>
<input name="terminobusqueda" type=text>
<input type=submit value="Buscar">
</form>


y este del resultados.php
siempre arroja este error de abajo-----------------------
i
i
<?php i
trim($terminobusqueda); i
if (!$tipobusqueda || !$terminobusqueda) i
{ i
echo "No has introducido los detalles de la busqueda. Por favor vuelve e inténtalo de nuevo.";
exit;
}
$tipobusqueda = addslashes($tipobusqueda);
$terminobusqueda = addslashes($terminobusqueda);

@ $db = mysql_pconnect("localhost", "root", "xxxxxxxx");
if (!$db)
{
echo "Error: No se ha podido conectar a la base de datos. Por favor, prueba de nuevo más tarde.";
exit;
}

mysql_select_db("based");
$consulta = "select * from inventario where ".$tipobusqueda." like '%".$terminobusqueda."%'";
$resultado = mysql_db_query($consulta);
$num_resultados = mysql_num_rows($resultado);

echo "<p>Número de libros encontrados: ".$num_resultados."</p>";

for ($i=0; $i <$num_resultados; $i++)
{
$row = mysql_fetch_array($resultado);
echo "<p><strong>".($i+1).". Título: ";
echo stripslashes($row["in_titulo"]);
echo "</strong><br>Autor: ";
echo stripslashes($row["in_autor"]);
echo "<br>ISBN: ";
echo stripslashes($row["in_isbn"]);
echo "<br>Precio: ";
echo stripslashes($row["in_id"]);
echo "</p>";
}

?>




lo elimino y aparece esto

resultados

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\xampp\htdocs\pruabaphp\zenkyu\zresultados .php on line 64

Número de libros encontrados:
  #2 (permalink)  
Antiguo 25/11/2009, 15:57
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 4 meses
Puntos: 5
Respuesta: buscador php

Cita:
Iniciado por etisdemian Ver Mensaje

y este del resultados.php
siempre arroja este error de abajo-----------------------
cual?


Cita:
Iniciado por etisdemian Ver Mensaje

lo elimino y aparece esto

resultados

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\xampp\htdocs\pruabaphp\zenkyu\zresultados .php on line 64
que eliminas?
  #3 (permalink)  
Antiguo 25/11/2009, 20:32
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: buscador php

@ $db = mysql_pconnect("localhost", "root", "xxxxxxxx");

se te chispoteo una "p" en el connect y sacale el @ sino esta al dope el if d abajo

$resultado = mysql_db_query($consulta);

usa mejor mysql_query()
  #4 (permalink)  
Antiguo 25/11/2009, 20:52
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: buscador php

Cita:
Iniciado por jackson666 Ver Mensaje
@ $db = mysql_pconnect("localhost", "root", "xxxxxxxx");

se te chispoteo una "p" en el connect y sacale el @ sino esta al dope el if d abajo

$resultado = mysql_db_query($consulta);

usa mejor mysql_query()
No es que se le "chispotee" la p es que el usa conexión persistente, y la función esta bien, la diferencia con mysql_connect es que esa función de persistente busca el primer link abierto y una vez que se finalice lo que se desee se deberá cerrar dicha conexión como se hace comunmente.

mysql_db_query() tmb esta bien si, es que usa una versión menor a 5.3.0 de contrario tendría que cambiarla como tú dices.


$consulta = "select * from inventario where ".$tipobusqueda." like '%".$terminobusqueda."%'";

sugiero:
$consulta = "select * from inventario where "'.$tipobusqueda.'" like '%$terminobusqueda%'";



y..
echo "<p>Número de libros encontrados: ".$num_resultados."</p>";

for ($i=0; $i <$num_resultados; $i++)
{
$row = mysql_fetch_array($resultado);
echo "<p><strong>".($i+1).". Título: ";
echo stripslashes($row["in_titulo"]);
echo "</strong><br>Autor: ";
echo stripslashes($row["in_autor"]);
echo "<br>ISBN: ";
echo stripslashes($row["in_isbn"]);
echo "<br>Precio: ";
echo stripslashes($row["in_id"]);
echo "</p>";
}

sugiero cambiarlo por:

if($num_resultados==0){
echo "<p>Número de libros encontrados: 0</p>";
}else{
echo "<p>Número de libros encontrados: ".$num_resultados."</p>";

$i=0;
while($row=mysql_fetch_array($consulta))
{
$post=$i+1;
echo "<p><strong>".($post).". Título: ";
echo stripslashes($row["in_titulo"]);
echo "</strong><br>Autor: ";
echo stripslashes($row["in_autor"]);
echo "<br>ISBN: ";
echo stripslashes($row["in_isbn"]);
echo "<br>Precio: ";
echo stripslashes($row["in_id"]);
echo "</p>";
}
}


Espero te sirva. Saludos
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 26/11/2009, 06:40
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: buscador php

corregi lo anterior pero, aún asi, no pasa nada. este es el error

Warning: mysql_db_query() expects at least 2 parameters, 1 given in C:\........resu.php on line 25

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\....resu.php on line 27

Número de libros encontrados: 0


así esta luego de la corrección

<?php

$tipobusqueda = addslashes($tipobusqueda);
$terminobusqueda = addslashes($terminobusqueda);

$db = mysql_connect("localhost", "root", "xxxxxxx");
if (!$db)
{
echo "Error: No se ha podido conectar a la base de datos. Por favor, prueba de nuevo más tarde.";
exit;
}

mysql_select_db("based");

$consulta = "select * from inventario where ".$tipobusqueda." like '%".$terminobusqueda."%'";

$resultado = mysql_db_query($consulta);

$num_resultados = mysql_num_rows($resultado);

if($num_resultados==0){
echo "<p>Número de libros encontrados: 0</p>";
}else{
echo "<p>Número de libros encontrados: ".$num_resultados."</p>";

$i=0;
while($row=mysql_fetch_array($consulta))
{
$post=$i+1;
echo "<p><strong>".($post).". Título: ";
echo stripslashes($row["in_titulo"]);
echo "</strong><br>Autor: ";
echo stripslashes($row["in_autor"]);
echo "<br>ISBN: ";
echo stripslashes($row["in_isbn"]);
echo "<br>Precio: ";
echo stripslashes($row["in_id"]);
echo "</p>";
}
}
?>






urgido me arroja error de sintaxis en este punto, asi es que no lo corregi
$consulta = "select * from inventario where "'.$tipobusqueda.'" like '%$terminobusqueda%'";
  #6 (permalink)  
Antiguo 26/11/2009, 10:00
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: buscador php

$resultado = mysql_db_query($consulta) or die(mysql_error());

veamos q arroja...
__________________
Hospedaje Web al mejor costo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:48.