Foros del Web » Programando para Internet » PHP »

Como generara una consulta desde PHP a una B.D

Estas en el tema de Como generara una consulta desde PHP a una B.D en el foro de PHP en Foros del Web. Buenas tardes, estoy realizando una aplicacion web, soy novato en esto. Necesito hacer una consulta a dos tablas de una base de datos, una tabla ...
  #1 (permalink)  
Antiguo 10/06/2013, 14:02
 
Fecha de Ingreso: noviembre-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Como generara una consulta desde PHP a una B.D

Buenas tardes, estoy realizando una aplicacion web, soy novato en esto. Necesito hacer una consulta a dos tablas de una base de datos, una tabla llamada salida y otra equipo_salida, esto se debe realizar al momento de ingresar una cedula en un campo llamado $_POST["campo"], la consulta se realiza comenzando desde la tabla salida donde solo almacena el id_salida y la cedula y esta se relaciona con la tabla equipo_salida por medio de una clave foranea id_salida, en la tabla equipo_salida se encuentra tres atributos mas los cuales son tipo_salida, fecha_desde y fecha_hasta.

Mi problema es el siguiente, con el $sql="SELECT * FROM salida JOIN equipo_salida ON salida.id_salida=equipo_salida.id_equipo_salida WHERE id_cedula='".$_POST["campo"]."';"; extraigo todos los campos que tengo en la base de datos (por defecto tengo 2 filas), esto lo compruebo con el $n=mysql_num_rows($result); me dice que son dos campos, pero cuando quiero imprimir todo eso en un cuadro presentable guardo los datos en $row = mysql_fetch_row($result); pero en el momento de imprimir los datos solo me imprime varias veces la primera linea y no recorre las otras, es decir, en nombre, apellido, cedula, asignacion, fecha desde y fecha hasta imprime los mismos valores en todos los casos.

como podria hacer para recorrer todas las filas y poder extraer los datos deseados. espero me puedan ayudar. debajo les dejo el codigo que empleo.


Código PHP:
<table border="0" align="center">
    <tr bgcolor='#EE0000'>
    <td>Nombre</td>
    <td>Apell&iacute;do</td>
    <td>C&eacute;dula</td>
    <td>Asignacion</td>
    <td>Fecha Desde</td>
    <td>Fecha Hasta</td>
</tr>
<?php
$sql
="SELECT * FROM salida JOIN equipo_salida ON salida.id_salida=equipo_salida.id_equipo_salida WHERE id_cedula='".$_POST["campo"]."';";
        
    
$result=mysql_query($sql,$link);
    
$row mysql_fetch_row($result);

    
    if(
$result)
    {
        
$n=mysql_num_rows($result);
        if(
$n>0)
        {
            for(
$i=0;$i<$n$i++)
            {            
                if(
$i%2==0)
                {

                                  
?>

                                     <tr id="c2" bgcolor="#AAAAAA">
                                      <td><?php echo $row['nombre'];?></td>
                                      <td><?php echo $row['apellido'];?></td>
                                       <td><?php echo $row['cedula'];?></td>
                                       <td><?php echo $row['tipo_salida'];?></td>
                                           <td><?php echo $row['fecha_desde'];?></td>
                                      <td><?php echo $row['fecha_hasta'];?></td>    
                               </tr>

                <?php

                                 
}
                                 else
                               {
                
?>
                                        <tr id="c1" bgcolor="#777777">
                          <td><?php echo $row['nombre'];?></td>
                          <td><?php echo $row['apellido'];?></td>
                          <td><?php echo $row['cedula'];?></td>
                           <td><?php echo $row['tipo_salida'];?></td>
                           <td><?php echo $row['fecha_desde'];?></td>
                            <td><?php echo $row['fecha_hasta'];?></td>
                        </tr>
                          <?php
                    
}
            }
        }
    }
?>
</table>
  #2 (permalink)  
Antiguo 10/06/2013, 14:24
sjj
 
Fecha de Ingreso: octubre-2008
Mensajes: 213
Antigüedad: 16 años
Puntos: 12
Respuesta: Como generara una consulta desde PHP a una B.D

Probá esto:

Código PHP:
$result=mysql_query($sql,$link);
while ($row = mysql_fetch_array($result);
{
<td><?php echo $row['nombre'];?></td> 
<td><?php echo $row['apellido'];?></td> 
<td><?php echo $row['cedula'];?></td> 
<td><?php echo $row['tipo_salida'];?></td> 
<td><?php echo $row['fecha_desde'];?></td> 
<td><?php echo $row['fecha_hasta'];
}
  #3 (permalink)  
Antiguo 11/06/2013, 15:45
 
Fecha de Ingreso: noviembre-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Como generara una consulta desde PHP a una B.D

intente con ese codigo pero genera un ciclo infinito y produce el error de los 30 segundos, yo creo que el error esta en el $row = mysql_fetch_row($result); solo guarda una linea fila de la consulta a la base de datos, no se si es por el $sql="SELECT * FROM salida JOIN equipo_salida ON salida.id_salida=equipo_salida.id_equipo_salida WHERE id_cedula='".$_POST["campo"]."';";
que podria hacer?
  #4 (permalink)  
Antiguo 11/06/2013, 15:50
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: Como generara una consulta desde PHP a una B.D

$row lo asignas 1 vez.
Luego haces un bucle sobre num_rows, pero sin obtener un nueva row.
Obviamente, te muestra 2 veces la misma row.
Haz lo que te han dicho, y sólo lo que te han dicho.Si entras en un bucle infinito, es porque hay otro bucle que lo provoca.
Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($result))
  2. {
  3. <td><?php echo $row['nombre'];?></td>  
  4. <td><?php echo $row['apellido'];?></td>  
  5. <td><?php echo $row['cedula'];?></td>  
  6. <td><?php echo $row['tipo_salida'];?></td>  
  7. <td><?php echo $row['fecha_desde'];?></td>  
  8. <td><?php echo $row['fecha_hasta'];
  9. }

Etiquetas: mysql, select, sql, tabla
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 22:11.