Foros del Web » Programando para Internet » PHP »

PhP While anidados

Estas en el tema de PhP While anidados en el foro de PHP en Foros del Web. Que tal buenas a todos, soy novato en php y necesito me ayuden con un problema relacionado con while anidados con php. El asunto es ...
  #1 (permalink)  
Antiguo 06/12/2012, 20:59
 
Fecha de Ingreso: diciembre-2012
Ubicación: .huihuihi
Mensajes: 21
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta PhP While anidados

Que tal buenas a todos, soy novato en php y necesito me ayuden con un problema relacionado con while anidados con php. El asunto es que debo de mostrar en una tabla registros de un pedido de zapatos con imagen, para esto debo de llenar los campos con php dependiendo de los registros dentro de la tabla que requiero. Como el campo de imagen del zapato no se encuentra dentro de la tabla de pedidos debo de hacer join entre tablas para sacar la imagen y jalarla para meterla en un row para despues llenar los campos de la tabla que mostraré. El problema es que cuando hago el while dentro de otro duplica o triplica los campos dependiendo cuantos haya en la tabla, es decir, si hay 2 registros en la tabla de pedidos, me mostrará 4 registros, dos de ellos, son duplicados. En este caso yo tengo 3 while, asiq ue cuando tengo tres registros, me va a mostrar nueve. ¿Como puedo hacerle para que me muestra solamente lo que existe dentro de la tabla?, de antemano, muchas gracias, aqui el codigo:

Código PHP:
<form id="form1" method="post" action="insertaZD.php" enctype="multipart/form-data">
            <table width="955" height="200" >
                <thead>
                    <tr align="center">
                        <th>Imagen</th>
                        <th>Numero de Pedido</th>
                        <th>Estado</th>
                        <th>Comentarios</th>
                        <th>SKU Zapato</th>
                        <th>Cantidad</th>
                        <th>Size</th>
                        <th colspan="2">Acciones</th>
                    </tr>
                </thead>
                <?php
                        
require ('conexion/conecta.php');
                        
                        
//mostrar todo en la tabla PEDIDO donde este el usuario activo
                        
$us=$_SESSION['usu'];
                        
$qry="select * from pedido where id_Usuario=$us"
                        
$qry2=mysql_query($qry$con);

            
                        if(!
$qry2){
                             echo 
mysql_error();
                             }
                        while(
$row mysql_fetch_array($qry2)){
                       


                       
/////////////////////////

                       
$qry1="select id_Zapato from pedido where id_Usuario=$us"
                            
$zap=mysql_query($qry1$con);
                        
                        
                        while(
$rox mysql_fetch_array($zap)){
                    
                    
$zaps=$rox['id_Zapato'];
                    
$img="select Imagen from zapato as z inner join pedido as p on (z.id_Zapato = p.id_Zapato) inner join usuario as u
                              on (u.id_Usuario = p.id_Usuario) where p.id_Zapato=$zaps and p.id_Usuario=$us; "

        
                            
$img2=mysql_query($img$con) or die("error");
                       
                       
/////////////////

                       
while($rot mysql_fetch_array($img2)){
                
?>
            <tbody>
                <tr align="center">
                    <td><div align="center"><img src="images/productos/<?php echo $rot['Imagen'];?>" width="65" height="52"/></div></td>
                    <td><div align="center"><strong><?php echo $row['id_Pedido'];?></strong></div></td>
                    <td><div align="center"><strong><?php echo $row['Estatus'];?></strong></div></td>
                    <td><div align="center"><strong><?php echo $row['Comentario'];?></strong></div></td>
                    <td><div align="center"><strong><?php echo $row['id_Zapato'];?></strong></div></td>
                    <td><div align="center"><strong><?php echo $row['can_Pedido'];?></strong></div></td>
                    <td><div align="center"><strong><?php echo $row['siz_Pedido'];?></strong></div></td>
                    <td><a href="actualizaD.php?id=<?php echo $row['id_Zapato'];?>"><img src="images/iconos/actualizar.png"/></a></td>
                    <td><a href="eliminaZD.php?id=<?php echo $row['id_Zapato'];?>"><img src="images/iconos/eliminar.png"/></a></td>
                      
                      <?php ?>  <?php ?> <?php ?> 
                    
                </tr>
                    
                    
            </tbody>
            </table>
        </form>
  #2 (permalink)  
Antiguo 07/12/2012, 06:51
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Respuesta: PhP While anidados

Todos los campos que sólo quieres que salgan una vez pon los antes del segundo while. Los que ya vienen de la primera consulta.

Etiquetas: anidados, mysql, sql, tabla, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:26.