consulta en php hacia phpmyadmin
Estoy intentando Mostrar unos datos de una tabla que como condición tiene que tener el codigo de cada fila igual a otro que hay en otra tabla. Pero al acceder a otra fila ya no me muestra nada. Me explico:
ejemplo, quiero que se muestre esto
1.Tipo de nombre
-------------------------------------------
1.Edad DNI
2.Edad DNI
2.Tipo de nombre
-------------------------------------------
1.Edad DNI
2.Edad DNI
Pero el problema es que me muestra solo esto:
1.Tipo de nombre
-------------------------------------------
1.Edad DNI
2.Edad DNI
2.Tipo de nombre
-------------------------------------------
3.Tipo de nombre
-----------------------------------------
Por lo que no me salen los datos de cada nombre
Muchas gracias
ejemplo, quiero que se muestre esto
1.Tipo de nombre
-------------------------------------------
1.Edad DNI
2.Edad DNI
2.Tipo de nombre
-------------------------------------------
1.Edad DNI
2.Edad DNI
Pero el problema es que me muestra solo esto:
1.Tipo de nombre
-------------------------------------------
1.Edad DNI
2.Edad DNI
2.Tipo de nombre
-------------------------------------------
3.Tipo de nombre
-----------------------------------------
Por lo que no me salen los datos de cada nombre
Muchas gracias
<table align="center" cellspacing="0">
<?
while($row=mysql_fetch_row($resultado_soporte)){
echo "<tr>";
//para visualizar la tabla de tipo de soporte
echo "<td bgcolor='#CC9966'>";
echo "$row[1]";
echo "</td>";
echo "</tr>";
//para visualizar la tabla de tipo de duplicaciones
while($row_tipdupli=mysql_fetch_row($resultado_duplicacion))
{
echo "<tr>";
if($row[0]==$row_tipdupli[2])
{
echo "<td bgcolor='#DDCC99'>";
echo "$row_tipdupli[1]";
echo "</td>";
}
echo "<tr>";
//para visualizar la tabla de cantidad y precios de soporte
echo "<tr><td>
<table width='100%' cellspacing='0'>
<tr bgcolor='#CCCC99'>
<td width='20'>Unidades</td>
<td width='20'>Precio</td>
</tr>";
while($row_cant=mysql_fetch_row($resultado_cantidad))
{
echo "<tr>";
if($row_tipdupli[0]==$row_cant[2])
{
echo "<td>";
echo "$row_cant[0]";
echo "</td>";
echo "<td>";
echo "$row_cant[1]";
echo "</td>";
}
echo "</tr>";
}
?>
</table>
</td></tr>
<?
}
}
?>
</table>
<?
while($row=mysql_fetch_row($resultado_soporte)){
echo "<tr>";
//para visualizar la tabla de tipo de soporte
echo "<td bgcolor='#CC9966'>";
echo "$row[1]";
echo "</td>";
echo "</tr>";
//para visualizar la tabla de tipo de duplicaciones
while($row_tipdupli=mysql_fetch_row($resultado_duplicacion))
{
echo "<tr>";
if($row[0]==$row_tipdupli[2])
{
echo "<td bgcolor='#DDCC99'>";
echo "$row_tipdupli[1]";
echo "</td>";
}
echo "<tr>";
//para visualizar la tabla de cantidad y precios de soporte
echo "<tr><td>
<table width='100%' cellspacing='0'>
<tr bgcolor='#CCCC99'>
<td width='20'>Unidades</td>
<td width='20'>Precio</td>
</tr>";
while($row_cant=mysql_fetch_row($resultado_cantidad))
{
echo "<tr>";
if($row_tipdupli[0]==$row_cant[2])
{
echo "<td>";
echo "$row_cant[0]";
echo "</td>";
echo "<td>";
echo "$row_cant[1]";
echo "</td>";
}
echo "</tr>";
}
?>
</table>
</td></tr>
<?
}
}
?>
</table>
A ver por lo que he entendido y veo en el codigo.
En la primera fila muestras por ejmplo como cabecera todos los productos( con el primer while) y luego dependiendo de si ciertos campos coinciden o no muestras la segunda fila ( segundo while) lo que ocurre es que comparas con la variable res del primer while cuando comienza el segundo, pero como los bubles no estan anidados, es decir uno desntro de otro, la variable res tiene siempre el mismo contenido, es decir lo que habia en el ultimo registro de la anterior tabla.
No se si me explico bien.
Lo que quiero decir es que primero se te ejecuta el primer while completo hasta el final con lo que la var res se queda al final con el valor de la ultima fila de tu tabla y luego empieza el segundo while donde haces la comparacion. cuando este se ejecuta entero empeazria el tercero.
Puede que el problema sea que tienes que anidar, dependiendo de con que tengas que comparar
En la primera fila muestras por ejmplo como cabecera todos los productos( con el primer while) y luego dependiendo de si ciertos campos coinciden o no muestras la segunda fila ( segundo while) lo que ocurre es que comparas con la variable res del primer while cuando comienza el segundo, pero como los bubles no estan anidados, es decir uno desntro de otro, la variable res tiene siempre el mismo contenido, es decir lo que habia en el ultimo registro de la anterior tabla.
No se si me explico bien.
Lo que quiero decir es que primero se te ejecuta el primer while completo hasta el final con lo que la var res se queda al final con el valor de la ultima fila de tu tabla y luego empieza el segundo while donde haces la comparacion. cuando este se ejecuta entero empeazria el tercero.
Puede que el problema sea que tienes que anidar, dependiendo de con que tengas que comparar
SI los tengo anidados, por eso mi duda ya que si no me mostraria el resto de los campos sino que me mostraria al principio todos los campos de resultado_soporte y luego el resto
ME entiendes o igual yo no te entendi bien
Muchas Gracias
ME entiendes o igual yo no te entendi bien
Muchas Gracias
Si perdona, si que los tenias anidados fallo mio al leer.
Estoy aqui en el trabajo uin pelin aburrido y pensando en lo de la anidacion claro podria estar pasando esto:
empieza primer while coge una fila y escribe y llama al segundo while que hace lo que tenga que hacer y llama al 3 while que se ejecuta entero para cada valor del while 2. . .
vamos sin hablarlo no sabria explicartelo bien pero te pasa algo parecido "creo" a con un for:
for cont=1..4
for cont2=1..4
aqui para cont=1 el segundo for se ejecutaria 4 vrces
para cont=2 lo mismo
asi hasta 4
esto es lo que creo que te pasa con los whiles anidados.
Miralo a ver.
Esoeri que te sirvca de algo
Estoy aqui en el trabajo uin pelin aburrido y pensando en lo de la anidacion claro podria estar pasando esto:
empieza primer while coge una fila y escribe y llama al segundo while que hace lo que tenga que hacer y llama al 3 while que se ejecuta entero para cada valor del while 2. . .
vamos sin hablarlo no sabria explicartelo bien pero te pasa algo parecido "creo" a con un for:
for cont=1..4
for cont2=1..4
aqui para cont=1 el segundo for se ejecutaria 4 vrces
para cont=2 lo mismo
asi hasta 4
esto es lo que creo que te pasa con los whiles anidados.
Miralo a ver.
Esoeri que te sirvca de algo