Foros del Web » Programando para Internet » PHP »

while repetir

Estas en el tema de while repetir en el foro de PHP en Foros del Web. Hola a todos, tengo la siguientes consultas Las cuales deberían dar este resultado Ejemplo resultados Televisión--- 5---------5,000 ---------------------------------------- Radio---------99.3-----7,000 Radio---------102.5--------8,000 ---------------------------------------- Actualmente tengo duplicado Radio ...
  #1 (permalink)  
Antiguo 24/08/2018, 14:15
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.253
Antigüedad: 7 años, 3 meses
Puntos: 8
while repetir

Hola a todos, tengo la siguientes consultas

Las cuales deberían dar este resultado

Ejemplo resultados
Televisión--- 5---------5,000

----------------------------------------

Radio---------99.3-----7,000
Radio---------102.5--------8,000
----------------------------------------


Actualmente tengo duplicado Radio
Televisión--- 5---------5,000

----------------------------------------

Radio---------99.3----------7,000
Radio---------102.5--------8,000
----------------------------------------

Radio---------99.3----------7,000
Radio---------102.5--------8,000
----------------------------------------


Código PHP:

$consulta_mediosc = "SELECT * FROM  medios_campania";
$mediosc  = mysqli_query($connection,$consulta_mediosc ) or die(mysqli_error($connection));
$row_mediosc  = mysqli_fetch_assoc($mediosc );
$totalRows_mediosc= mysqli_num_rows($mediosc);
Hago un while para mostrar los resultados 
  
  <?   do { ?>
   <tr>
 <?php 
$m
$row_mediosc ['medio'];
/*Dependiendo el medio hago otra consulta para obtener datos generales */       
$query_medios=sprintf("SELECT * FROM registrar_medio Where id='$m'");
$mediosmysqli_query($connection,$query_medios) or die(mysqli_error($connection));
$row_mediosmysqli_fetch_assoc($medios);
$totalRows_mediosmysqli_num_rows($medios);
echo 
$row_medios ['nombre'];?></td>
 $medio=$row_medios ['categoria'];
        <td >
/*Hasta aca todo bien*/
/* IF*/
        if($medio=="6"){
            
$consulta_mediosu = "SELECT * FROM  asociar_campania Where medio='$m' ";
$mediosu = mysqli_query($connection,$consulta_mediosu ) or die(mysqli_error($connection));
$row_mediosu = mysqli_fetch_assoc($mediosu);
$totalRows_mediosu= mysqli_num_rows($mediosu);
        

do { 
/*Obtengo los id’s de la segunda consulta*/
    echo "id " .$id=$row_mediosu ['id'];    /*id*/
    echo "<BR>";


do { 
/*Aca tengo dudas dependiendo de cada id debo obtener información general (por cada id) */
$consulta_mediosu2 = "SELECT * FROM  asociar_campania Where id='$m' ";
 $mediosu2 = mysqli_query($connection,$consulta_mediosu2 ) or die(mysqli_error($connection));
$row_mediosu2 = mysqli_fetch_assoc($mediosu2);
$totalRows_mediosu2= mysqli_num_rows($mediosu2);
$c2=$row_mediosu2 ['campo2'];

/*Muestro los resultados la información se duplica pero si no dejo el while solo obtengo un resultado*/            
echo "<table border='0'><tr>";
            
        echo "<td>Tipo: $c2."
        <tr>
        <td>Notas:</td></tr>
 </table>";
 } while ($row_mediosu2= mysqli_fetch_assoc($mediosu2)); /*Caso específico*/
 } while ($row_mediosu= mysqli_fetch_assoc($mediosu)); /*Primera consulta obtener todos los medios*/
 }
  #2 (permalink)  
Antiguo 30/08/2018, 08:39
 
Fecha de Ingreso: noviembre-2015
Mensajes: 47
Antigüedad: 2 años, 11 meses
Puntos: 2
Respuesta: while repetir

Hola,

Acabo de hacer la misma pregunta hace unos días, después de mucho buscar no encontré nada ni respuesta en el foro, así que me puse a resolverlo y encontré una solución que publiqué.
Primero, tienes que hacer un while adentro de otro while porque cada vez que se consulta con el mismo while se de multiplican los registros y campos. Ahora bien, si no tienes combos en tu interfaz, a tu consulta ponle LIMIT 1. (Sólo si no tienes combos)
Si tienes combos, entonces debes hacer while adentro del while. te dejo la liga de la solución que publiqué:
http://www.forosdelweb.com/f18/como-llenar-select-option-dentro-while-php-1162016/

Saludos y espero que te sirva.
__________________
paco alonso



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