Foros del Web » Programando para Internet » PHP »

Mostrar todos los campos tras una consulta SELECT*FROM

Estas en el tema de Mostrar todos los campos tras una consulta SELECT*FROM en el foro de PHP en Foros del Web. Qué tal? Muevo mi consulta porque estaba en otro lado, y creo que mal ubicada: la reformulo: **Base de datos: médicos zonales (campo nombre, campo ...
  #1 (permalink)  
Antiguo 29/05/2010, 08:02
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Mostrar todos los campos tras una consulta SELECT*FROM

Qué tal?
Muevo mi consulta porque estaba en otro lado, y creo que mal ubicada: la reformulo:
**Base de datos: médicos zonales (campo nombre, campo direccion, campo dia)

**Consultas: medico por día, por nombre, por dirección.

**Estoy haciendo una consulta a la base de datos a partir de una palabra ingresada en el cuadro de búsqueda. Busco las coincidencias en un campo (Nombre, por ejemplo), pero quiero que al encontrarlas, imprima todos los campos que correspondan a cada row, es decir, campo nombre, campo direccion, campo dia.

¿Es esto posible?

Probé agregar a la visualización los otros campos, pero no funciona, o estoy haciedo algo mal.
A continuación, mi código
Código PHP:
<?
if ($_POST['buscador'])

// Tomo el valor ingresado
$buscar $_POST['palabra'];

// Si está vacío...
if(empty($buscar))
{
echo 
"No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos

$con=mysql_connect("localhost","usuario","pass");

//Elijo dónde va a buscar las coincidencias

$sql "SELECT * FROM Medicos WHERE Nombre like '%$buscar%' 

ORDER BY id DESC"
;

mysql_select_db("nombre de la base"$con); 

$result mysql_query($sql$con); 

//Resultados....

$total mysql_num_rows($result);

// Imprimir...[U]Y AQUI EL TEMA: [/U]

if ($row mysql_fetch_array($result)){ 
echo 
"Resultados para: <b>$buscar</b>";
do { 

?>

<p><b><a href="../listamedicos.php?Id=<?=$row['Id'];?>"><?=$row

['Nombre'];?></a></b></p> 


<?


} while ($row mysql_fetch_array($result)); 
echo 
"<p>Resultados: $total</p>";
} else 




echo 
"No se encontraron resultados para: <b>$buscar</b>"
}
}
}
?>

Bueno, muchas gracias por la atención...
  #2 (permalink)  
Antiguo 29/05/2010, 12:24
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Depende de donde los quieres imprimir...si es mostrarlos por pantalla prueba print row['nombrecampo']; dentro del bucle
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)
  #3 (permalink)  
Antiguo 29/05/2010, 12:26
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Trata de esta forma
Código PHP:
Ver original
  1. <?php while($row = mysql_fetch_assoc($result)){ ?>
  2.  
  3.     <p><b><a href="http://www.forosdelweb.com/f18/listamedicos.php?Id=<?php echo $row['Id']; ?>"><?php echo $row['Nombre']; ?></a></b></p>  
  4.  
  5. <?php } ?>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 29/05/2010, 16:08
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Cita:
Iniciado por abimaelrc Ver Mensaje
Trata de esta forma
Código PHP:
Ver original
  1. <?php while($row = mysql_fetch_assoc($result)){ ?>
  2.  
  3.     <p><b><a href="http://www.forosdelweb.com/f18/listamedicos.php?Id=<?php echo $row['Id']; ?>"><?php echo $row['Nombre']; ?></a></b></p>  
  4.  
  5. <?php } ?>
Abimaelrc:
con ese código sólo me imprime el campo "NOmbre", digamos, estoy igual que antes. Lo que necesito es que me dé todos los campos de esa fila.

Encontré este código en el wiki:

Código PHP:
<?
$iquery
=mysql_query($squery,$ilink); 
if (
$iquery>0) { 
   
$irow=0
   
$ilastrow=mysql_num_rows($iquery); 
   while (
$irow<$ilastrow) { 
        
$campo=mysql_result($iquery,$irow,"Nombre");

        
$campo=mysql_result($iquery,$irow,"Apellido");
              
        
$campo=mysql_result($iquery,$irow,"Telefono");
    
        
$campo=mysql_result($iquery,$irow,"Calle"); 

        
$campo=mysql_result($iquery,$irow,"Nº");

        
$campo=mysql_result($iquery,$irow,"Piso"); 
    
        
$campo=mysql_result($iquery,$irow,"Ciudad"); 

        
$campo=mysql_result($iquery,$irow,"Dia");
         
//asi obtienes los datos de un campo 
        //repetir segun sea necesario 

            
       
$irow++; 
   } 

?>
Pero de esa manera, la página queda en blanco.......
  #5 (permalink)  
Antiguo 29/05/2010, 16:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

No es así. Solo tienes que indicar el nombre del campo que deseas
Código PHP:
Ver original
  1. <?php while($row = mysql_fetch_assoc($result)){
  2. echo $row['Nombre'] . ' ' . $row['Apellido'] . ' ' . $row['Telefono'] . ' ' . $row['Calle'] . ' ' . $row['N'] . ' ' . $row['Piso'] . ' ' . $row['Ciudad'] . ' ' . $row['Dia'];
  3. }
Otra cosa importante, a los nombres que le asignes a los campos en la base de datos no le coloques caracteres especiales solo ingresa de a-zA-Z0-9
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 29/05/2010, 16:16
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Nekeniehl, en dónde pondrías el print row['nombrecampo'];?
Mi código sólo dice

Código PHP:
<? //viene de arriba
// Imprimimos los resultados
if ($row mysql_fetch_array($result)){ 
echo 
"Resultados para: <b>$buscar</b>";
do { 


//y después, el bucle para que muestre cuántos resultados



} while ($row mysql_fetch_array($result)); 
echo 
"<p>Resultados: $total</p>";
}
?>
Gracias!
  #7 (permalink)  
Antiguo 29/05/2010, 21:15
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Como te dice Abimael va la cosa coloca todos los campos que necesitas mostrar dentro del nombre yo usaría echo en luguar de print y en la pregunta que haces arriba

if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{

yo lo haría con
if(isset($_POST['tu variable'])) ya que empty es muy lento....

Saludos
  #8 (permalink)  
Antiguo 30/05/2010, 12:52
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

El echo hace la misma funcion del print basicamente, de la forma que te a dicho el compañero es la mas apropiada, tienes que sacar mediante echo y el nombre del campo que deseas
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)
  #9 (permalink)  
Antiguo 30/05/2010, 19:27
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Bueno, aquí el código con modificaciones sugeridas. Me tira errores de sintaxis, así es que no pude comprobar si funciona. La última ayudita por favor!!
Código PHP:
<?
if ($_POST['buscador'])


$buscar $_POST['palabra'];

// Aquí acepté la sugerencia de egepe
if(isset($_POST[$buscar])) 
{
echo 
"No se ha ingresado una cadena a buscar";

}
else {
//Conecto
$con=mysql_connect("localhost","usuario","pass");

//Consulta
$sql "SELECT * FROM Medicos WHERE Nombre like '%$buscar%'  

ORDER BY id DESC"
;

mysql_select_db("nombre_base"$con); 

$result mysql_query($sql$con); 

// total de resultados
$total mysql_num_rows($result);

// Imprimimos los resultados
 
if ($row mysql_fetch_array($result));

echo 
"Resultados para: <b>$buscar</b>";
do { 

while (
$row mysql_fetch_assoc ($result))
{
echo 
$row['Nombre'] . ' ' $row['Apellido'] . ' ' $row['Telefono'] . ' ' $row['Calle'] . ' ' $row['N'] . ' ' $row['Piso'] . ' ' $row['Ciudad'] . ' ' $row['Dia'];}



echo 
"<p>Resultados: $total</p>";
} else 

echo 
"No se encontraron resultados para: <b>$buscar</b>"
}
}
}
?>
Los errrores se refieren a los echo del final y aunque los quite, siempre dice
syntax error, unexpected ';', expecting T_WHILE in´.....cualquiera de las lineas.
Gracias!!!!
  #10 (permalink)  
Antiguo 31/05/2010, 03:34
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

A ver, yo te ayudo, pero no veas lo que me acostado..
Aquí tienes el código, el fallo está en el if, que tiene un ; al final, y luego el bucle do while también lo haces mal..yo simplemente he copiado tu código y le he quitado esos errores, no sé si funcionará ya me dices:
Código PHP:
Ver original
  1. <?
  2. if ($_POST['buscador'])
  3. {
  4.     $buscar = $_POST['palabra'];
  5.     // Aquí acepté la sugerencia de egepe
  6.     if(isset($_POST[$buscar]))
  7.     {
  8.         echo "No se ha ingresado una cadena a buscar";
  9.     }
  10.     else
  11.     {
  12.         //Conecto
  13.         $con=mysql_connect("localhost","usuario","pass");
  14.         //Consulta
  15.         $sql = "SELECT * FROM Medicos WHERE Nombre like '%$buscar%'
  16.        ORDER BY id DESC";
  17.         mysql_select_db("nombre_base", $con);
  18.         $result = mysql_query($sql, $con);
  19.         // total de resultados
  20.         $total = mysql_num_rows($result);
  21.         // Imprimimos los resultados
  22.         if ($row = mysql_fetch_array($result))
  23.         {
  24.             echo "Resultados para: <b>$buscar</b>";
  25.             do
  26.             {
  27.                 echo ($row['Nombre'] . ' ' . $row['Apellido'] . ' ' . $row['Telefono'] . ' ' . $row['Calle'] . ' ' . $row['N'] . ' ' . $row['Piso'] . ' ' . $row['Ciudad'] . ' ' . $row['Dia']);
  28.             }while ($row = mysql_fetch_assoc ($result));
  29.            
  30.             echo "<p>Resultados: $total</p>";
  31.         }
  32.         else
  33.         {
  34.             echo "No se encontraron resultados para: <b>$buscar</b>";
  35.         }
  36.     }
  37. }
  38. ?>

Como consejo para que en futuros programas no te pasen estas cosas, aprende a sangrar correctamente para hacer el código más legible para ti y para los programadores que puedan retocarlo en un futuro. Saludos y suerte!
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)
  #11 (permalink)  
Antiguo 31/05/2010, 10:22
Avatar de kmzero  
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Mostrar todos los campos tras una consulta SELECT*FROM

Amigos, son unos genios!! El código de Abimael es justo lo que buscaba.

:apla uso:: aplauso::aplau so:

Nekeniehl, te pasaste, de verdad te agradezco muchísimo y prometo mejorar para, sobre todo, aportar!

Por si alguien anda perdido y le sirve el ejemplo (como a mí hace unos días.....), para que se vean los resultados prolijos, va

Código HTML:
<p><b><a href="../listamedicos.php?Id=<?=$row['Id'];?>"><?=$row

['Nombre'];?></a></b></p> 
entre el do}de la linea 25, antes del echo.
Distraídos no olvidemos de cerrar y abrir php ?> cuando insertamos ese código.

Otra vez gracias a los tres que siguieron el caso!!!!!!!!

Etiquetas: campos, tras
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 13:41.