Foros del Web » Programando para Internet » PHP »

Problema con buscador PHP que muestra resultados en tabla

Estas en el tema de Problema con buscador PHP que muestra resultados en tabla en el foro de PHP en Foros del Web. Hola No soy programador PHP como tal, por ende solo puedo hacer o comprender algunos cambios en PHP. Adapté un buscador simple para que me ...
  #1 (permalink)  
Antiguo 06/11/2011, 14:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 104
Antigüedad: 18 años, 2 meses
Puntos: 0
Problema con buscador PHP que muestra resultados en tabla

Hola
No soy programador PHP como tal, por ende solo puedo hacer o comprender algunos cambios en PHP. Adapté un buscador simple para que me muestre los resultados en una table. Mi problema es que fila por fila en de cada respuesta me repite los campos de cabecera y solo deseo dichos campos en la parte superior de la tabla y no en cada registro mostrado. Cómo por favor podría solucionarlo? podría alguien sugerir un reacomodo del código por favor?
Muchas gracias de antemano
Qualito


<html>
<head>
<title>Buscador simple en PHP</title>
</head>
<body>
<form action="buscartfa.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
<?
if ($_POST['buscador'])
{
// Tomamos el valor ingresado
$buscar = $_POST['palabra'];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost","luisen_buscartfa", "password");
$sql = "SELECT * FROM tabla WHERE (USUARIO like '%$buscar%'
or CARGO like '%$buscar%' or
AREA like '%$buscar%' or
PLANTA like '%$buscar%' or
CLARO like '%$buscar%' or
MOVISTAR like '%$buscar%' or
RPM like '%$buscar%' or
NEXTEL like '%$buscar%' or
ANEXO like '%$buscar%' )";

mysql_select_db("luisen_buscartfa", $con);

$result = mysql_query($sql, $con);

// Tomamos el total de los resultados
$total = mysql_num_rows($result);

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<table width="960" border=1>
<tr>
<th width="150">Usuario</th><th width="120">Cargo</th><th width="200">Área</th><th width="120">Proyecto</th><th width="80">Claro</th>
<th width="80">Movistar</th><th width="80">RPM</th><th width="80">Nextel</th><th width="50">Anexo</th>
</tr>

<tr>
<td>
<p><b><?=$row['USUARIO'];?></b></p>
</td>
<td>
<p><b><?=$row['CARGO'];?></b></p>
</td>
<td>
<p><b><?=$row['AREA'];?></b></p>
</td>
<td>
<p><b><?=$row['PLANTA'];?></b></p>
</td>
<td>
<p><b><?=$row['CLARO'];?></b></p>
</td>
<td>
<p><b><?=$row['MOVISTAR'];?></b></p>
</td>
<td>
<p><b><?=$row['RPM'];?></b></p>
</td>
<td>
<p><b><?=$row['NEXTEL'];?></b></p>
</td>
<td>
<p><b><?=$row['ANEXO'];?></b></p>
</td>

</tr>
</table>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 06/11/2011, 14:47
 
Fecha de Ingreso: julio-2010
Mensajes: 43
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Problema con buscador PHP que muestra resultados en tabla

Ok esto es muy sencillo simplemente sácalos del ciclo, es decir ponlos antes de hacer el do o incluso antes de realizar tu conexión con la BD
  #3 (permalink)  
Antiguo 06/11/2011, 14:48
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Problema con buscador PHP que muestra resultados en tabla

Lo que pasa es que tienes la cabecera dentro del bucle y debería estar afuera.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #4 (permalink)  
Antiguo 06/11/2011, 15:03
 
Fecha de Ingreso: febrero-2006
Mensajes: 104
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problema con buscador PHP que muestra resultados en tabla

Adicityofmetal, Portalmana

Gracias por sus respuesta, si también se que la cabecera se repite y debería estar fuera del ciclo o bucle, el tema es cómo...como decia lineas arriba he tratado de reacomodar el código mas no he podido hacer que funcione (actualmente como lo ven funciona) pero por ejemplo

...sacando cabecera del bucle...

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";

<table width="960" border=1>
<tr>
<th width="150">Usuario</th><th width="120">Cargo</th><th width="200">Área</th><th width="120">Proyecto / Planta</th><th width="80">Claro</th>
<th width="80">Movistar</th><th width="80">RPM</th><th width="80">Nextel</th><th width="50">Anexo</th>
</tr>

do {
?>

<tr>
<td>
<p><b><?=$row['USUARIO'];?></b></p>
</td>
<td>
<p><b><?=$row['CARGO'];?></b></p>
</td>
<td>
<p><b><?=$row['AREA'];?></b></p>
</td>
<td>
<p><b><?=$row['PLANTA'];?></b></p>
</td>
<td>
<p><b><?=$row['CLARO'];?></b></p>
</td>
<td>
<p><b><?=$row['MOVISTAR'];?></b></p>
</td>
<td>
<p><b><?=$row['RPM'];?></b></p>
</td>
<td>
<p><b><?=$row['NEXTEL'];?></b></p>
</td>
<td>
<p><b><?=$row['ANEXO'];?></b></p>
</td>

</tr>
</table>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";

etc etc...y ya no funciona

El concepto de sacarlos del ciclo o blucle tienen razón, mi problema es como dejar el código correctamente puesto para que funciona

Me podrian por favor ayudar en ello? lo que necesito es por favor el código correctamente reacomodado pues eso es lo que no me sale..
Muchas Gracias
Qualito
Qualito
  #5 (permalink)  
Antiguo 06/11/2011, 16:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 104
Antigüedad: 18 años, 2 meses
Puntos: 0
Respuesta: Problema con buscador PHP que muestra resultados en tabla

Hola

Muchas gracias por sus post, La necesidad te obliga buscar rápido y con sus recomendaciones y la ayuda de este video http://www.youtube.com/watch?v=hWlFFUUT4kw
Logré finalmente dejarlo así

......
// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";

echo "<table width=\"1024\" border=\"1\">";
echo "<tr><th width=\"150\">Usuario</th><th width=\"200\">Cargo</th><th width=\"200\">Área</th><th width=\"120\">Proyecto / Planta</th>";
echo "<th width=\"80\">Claro</th>";
echo "<th width=\"80\">Movistar</th><th width=\"80\">RPM</th><th width=\"80\">Nextel</th><th width=\"50\">Anexo</th>";
echo "</tr>";
echo "</table>";


do {
?>
<table width="1024" border=1>
<tr>
<td width="150">
<p><b><?=$row['USUARIO'];?></b></p>
</td>
<td width="200">
<p><b><?=$row['CARGO'];?></b></p>
</td>
<td width="200">
<p><b><?=$row['AREA'];?></b></p>
</td>
<td width="120">
<p><b><?=$row['PLANTA'];?></b></p>
</td>
<td width="80">
<p><b><?=$row['CLARO'];?></b></p>
</td>
<td width="80">
<p><b><?=$row['MOVISTAR'];?></b></p>
</td>
<td width="80">
<p><b><?=$row['RPM'];?></b></p>
</td>
<td width="80">
<p><b><?=$row['NEXTEL'];?></b></p>
</td>
<td width="50">
<p><b><?=$row['ANEXO'];?></b></p>
</td>

</tr>
</table>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";


Ahora ya no repite las cabeceras y funciona ok.
Gracias
Un saludo
Qualito
  #6 (permalink)  
Antiguo 06/11/2011, 18:07
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Problema con buscador PHP que muestra resultados en tabla

De nada, si realmente lo resolvió tu inquietud de buscar sobre las cosas...

Saludos y que pases bien
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: html, muestra, mysql, registro, sql, tabla, buscadores, usuarios
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 17:33.