Foros del Web » Programando para Internet » PHP »

Consulta de registros

Estas en el tema de Consulta de registros en el foro de PHP en Foros del Web. hola de nuevo..... espero no aburrir... pero deverdad que me parece facinante esto de la programación en PHP y ahora me meti en otra duda.... ...
  #1 (permalink)  
Antiguo 05/04/2004, 11:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Consulta de registros

hola de nuevo.....
espero no aburrir... pero deverdad que me parece facinante esto de la programación en PHP y ahora me meti en otra duda....

quiero hacer consultas de registros de mi base da datos en MySQL a partir de este formulario

<html>
<body>
<form method="POST" action="http://localhost/consulta/buscador.php3">
<strong>Palabra clave:</strong> <input type="text" name="T1" size="20"><br><br>
<input type="submit" value="Buscar" name="buscar">
</form>
</body>
</html>

luego quiero que me regrese un resultado con esta pagina PHP

<html>
<body>

<?php
if (!isset($buscar)){
echo "Debe especificar una cadena a bucar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "");
mysql_select_db("mydb", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link);
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["id"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>

</body>
</html>

pero apezar que existen registros en mi tabla agenda me aparece un mensajeq ue dice ... no hay datos relacionados-- que puedo hacer....
  #2 (permalink)  
Antiguo 05/04/2004, 13:25
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
cuando tomas la cadena a buscar lo haces en la variable T1

<strong>Palabra clave:</strong> <input type="text" name="T1" size="20"><br><br>

asi la llamas...

y por lo que veo el select que haces es este

$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link);


y buscar es el nombre de tu botón no la cadena de caractares que queres encontrar


<input type="submit" value="Buscar" name="buscar">

mmm no se si este equivocada.. si algo me decis...
  #3 (permalink)  
Antiguo 05/04/2004, 14:46
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Asi esta la situacion

lo que quiero es usar el codigo HTML para hacer una busqueda en mi Base de datos de MySQL, y que me regrese un resultado como el que describo en el codigo PHP, los datos existen dentro de la tabla , pero al consultar me regresa un mensaje que dice
¡ No se ha encontrado ningún registro ! y nose porque....

esa es mi duda.... es que estoy haciendo algo mal... o que me estoy conectando incorrectamente a la base de datos???
  #4 (permalink)  
Antiguo 05/04/2004, 16:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usa:

$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link) or die (msyql_error());

para detectar posibles errores en la conexión o en la sintax SQL ..

Y el ...
if ($row = mysql_fetch_array($result)){

No deberías usarlo con ese fin y de esa forma ... Para eso exite COUNT() de Mysql para ver si tu consulta arrojó más de un registro .. y en PHP dispones de la función mysql_num_rows() para eso mismo.

Por otro lado .. una llamada a mysql_fetch_xxxx() (sea array, objetc, row .. ) te entrega un registro de tu consulta y mueve el puntero a la próxima posición de ese "record-set" .. Al llegar al final arroja un "FALSE" (que es lo que estás usando para determinar si hay o no resultados en tu consulta .. )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 17/04/2004, 09:09
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Nuevo intento

Fijense que intente de nuevo con lo del buscador y a pezar que si existen registros me aparece el mensaje que no hay..... nose que hacer.... este es el codigo que estoy usando.

<html>
<body>

<?php
if (!isset($buscar)){
echo "Debe especificar una cadena a bucar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "");
mysql_select_db("mydb", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%'
ORDER BY nombre", $link) or die (msyql_error());
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["id"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>

</body>
</html>
  #6 (permalink)  
Antiguo 17/04/2004, 12:22
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Per Salome ya te respondió eso... te explicó el error que estás cometiendo... lo que pasa es que parece que tú esperas que te den el código resuelto... pues lo que hizo Salome me parece correcto.. ésa es la forma en la que deberían funcionar los foros... de todas maneras te pongo en código lo que ya te explicaron:
Código PHP:
$result mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$T1%' ORDER BY nombre"$link); 
Ése es un primer error que estabas cometiendo... además debes tener en cuenta las recomendaciones de Cluster.

Saludos
  #7 (permalink)  
Antiguo 21/04/2004, 17:11
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
siento molestar nuevamente

siento molestarlos nuevamente pero de verdad que esto me da problemas ... el problema es el siguiente....
ya hice las modificaciones que me proporcionaron pero aun asi no me corre.... el codigo que estoy utilizando es este... para que lo vean como lo corregí ......

de verdad que si pueden ayudarme se los agradecere mucho...

este es el HTML

<html>
<body>
<form method="POST" action="http://localhost/consulta/buscador.php">
<strong>Palabra clave:</strong> <input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="Buscar" name="buscar">
</form>
</body>
</html></html>


y este ees el php

<html>
<body>

<?php
if (!isset($buscar)){
echo "Debe especificar una cadena a bucar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "");
mysql_select_db("mydb", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link) or die (msyql_error());
if ($row = mysql_num_rows($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["id"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["direccion"]."</td> \n";
echo "<td>".$row["telefono"]."</td> \n";
echo "<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>

</body>
</html>

el mensaje queme aparece es ¡ No se ha encontrado ningún registro ! y si los hay....

por favor ayudenme... es de vida o muerte..
  #8 (permalink)  
Antiguo 30/11/2004, 22:34
 
Fecha de Ingreso: agosto-2003
Ubicación: America
Mensajes: 115
Antigüedad: 20 años, 8 meses
Puntos: 0
!!!

Lamento decirte que no has hecho aun las modificaciones que te mostraron arriba.

Saludos
  #9 (permalink)  
Antiguo 30/11/2004, 22:53
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
este.... DJ_TV... no sé si lo notaste....pero elúltimo mensaje en este hilo fue escrito en abril!!!

Saludos
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:13.