Foros del Web » Programando para Internet » PHP »

while dentro de while?

Estas en el tema de while dentro de while? en el foro de PHP en Foros del Web. Bueno, pongo aquí mi código, es algo engorroso, espero que si alguien tiene tiempo me eche una mano. Código PHP: <?php include_once  "PHPPaging.lib.php" ; $paging  ...
  #1 (permalink)  
Antiguo 03/12/2008, 10:30
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
while dentro de while?

Bueno, pongo aquí mi código, es algo engorroso, espero que si alguien tiene tiempo me eche una mano.
Código PHP:
<?php
include_once "PHPPaging.lib.php";
$paging = new PHPPaging;

$conexion mysql_connect('localhost','root',''); 
//Seleccion de la base de datos... 
mysql_select_db('mi_base_de_datos',$conexion); 

$paging = new PHPPaging($conexion);

$q "select * from noticias order by fecha Desc";

$paging->agregarConsulta($q);

mysql_connect('localhost','root','');
mysql_select_db('mi_base_de_datos');
$sql "select * from noticias order by fecha Desc";

include_once 
'PHPPaging.lib.php';
$paging = new PHPPaging;

$paging->agregarConsulta($sql);

$paging->ejecutar();

while(
$datos $paging->fetchResultado()) {

$texto "$datos[noticia]"
$texto substr($texto0300);


$result2=mysql_query("select * from comentarios where id",$connect);
$totalcomentarios=mysql_num_rows($result2);

while(
$row=mysql_fetch_array($result))
{

$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);


echo 
'
        <table width="400" cellspacing="0" cellpadding="0" border="0">
        <tr>
        <td background="images/cuentat_16.jpg" width="15" height="32">
        </td>
        <td background="images/cuentat_17.jpg" width="*" height="32" class="titulo">

            De: '
.$datos['autor'].', publicado el dia '.$datos['fecha'].'

        </td>
        <td background="images/cuentat_19.jpg" width="15" height="32">
        </td>
        </tr>
        <tr>
        <td width="15" height="165" class="mensajes1">
        </td>
        <td width="*" height="165" class="mensajes2">
            <h3><a class="linki" href="ver.php?id='
.$datos[id_noticia].'">'.$datos['titulo'].'</a></h3>

            '
.$texto.'... <a class="linki4" href="ver.php?id='.$datos[id_noticia].'">(Leer más)</a> 
        <br><br>
             
            <a class="linki4" href="ver.php?id='
.$datos[id_noticia].'">Respuestas: ('.$totalcomentarios.')</a><br><br>

        </td>
        <td width="15" height="165" class="mensajes3">
        </td>
        </tr>
        </table><br>
'
;
}
}
mysql_free_result($result)
$links $paging->fetchNavegacion();

//Una cadena conteniendo el codigo HTML de la barra de 
//navagación es generada y guardada en la variable $links.

echo $links;

?>
En cambio, quitando lo de totalcomentarios me funciona perfectamente, es decir, asi:

Código PHP:
<?php
include_once "PHPPaging.lib.php";
$paging = new PHPPaging;

$conexion mysql_connect('localhost','root',''); 
//Seleccion de la base de datos... 
mysql_select_db('mi_base_de_datos',$conexion); 

$paging = new PHPPaging($conexion);

$q "select * from noticias order by fecha Desc";

$paging->agregarConsulta($q);

mysql_connect('localhost','root','');
mysql_select_db('mi_base_de_datos');
$sql "select * from noticias order by fecha Desc";

include_once 
'PHPPaging.lib.php';
$paging = new PHPPaging;

$paging->agregarConsulta($sql);

$paging->ejecutar();

while(
$datos $paging->fetchResultado()) {

$texto "$datos[noticia]"
$texto substr($texto0300);

echo 
'
        <table width="400" cellspacing="0" cellpadding="0" border="0">
        <tr>
        <td background="images/cuentat_16.jpg" width="15" height="32">
        </td>
        <td background="images/cuentat_17.jpg" width="*" height="32" class="titulo">

            De: '
.$datos['autor'].', publicado el dia '.$datos['fecha'].'

        </td>
        <td background="images/cuentat_19.jpg" width="15" height="32">
        </td>
        </tr>
        <tr>
        <td width="15" height="165" class="mensajes1">
        </td>
        <td width="*" height="165" class="mensajes2">
            <h3><a class="linki" href="ver.php?id='
.$datos[id_noticia].'">'.$datos['titulo'].'</a></h3>

            '
.$texto.'... <a class="linki4" href="ver.php?id='.$datos[id_noticia].'">(Leer más)</a> 
        <br><br>
             
            <a class="linki4" href="ver.php?id='
.$datos[id_noticia].'">Respuestas: ('.$totalcomentarios.')</a><br><br>

        </td>
        <td width="15" height="165" class="mensajes3">
        </td>
        </tr>
        </table><br>
'
;
}
$links $paging->fetchNavegacion();

//Una cadena conteniendo el codigo HTML de la barra de 
//navagación es generada y guardada en la variable $links.

echo $links;

?>
El error he de tenerlo aquí:


$result2=mysql_query("select * from comentarios where id",$connect);
$totalcomentarios=mysql_num_rows($result2);

while($row=mysql_fetch_array($result))
{

$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);


echo '
<table widt...

pero no se donde :S


Saludos!
  #2 (permalink)  
Antiguo 03/12/2008, 12:11
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: while dentro de while?

Estas seguro de esa consulta?

$result2=mysql_query("select * from comentarios where id",$connect);

No deberías completar el where?

No logro entender bien para que colocas esas dos consultas similares (por no decir idénticas solo que a una de ellas le hace falta completar el where).

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 03/12/2008, 12:14
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: while dentro de while?

Deberías explicar cuál es el comportamiendo erroneo, cual el esperado...........

Así a bote pronto,esto no tiene buena pinta:

Código php:
Ver original
  1. $result2=mysql_query("select * from comentarios where id",$connect);
  2. $totalcomentarios=mysql_num_rows($result2);
  3.  
  4. while($row=mysql_fetch_array($result))
  5. {
  6.  
  7. $result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
  8. $totalcomentarios=mysql_num_rows($result2);

preguntas por $result en el while, y esa variable no existe....
Dentro del bucle machacas el $result2....

No sé qué pretendes hacer con el código, pero me da que la primera consulta debería ser para el ID de Noticia actual, así que sobrarían las dos últimas, y en el while preguntarías por $result2.

Y luego actuar en concordancia....

Pero vamos, estaría bien tener más datos.
  #4 (permalink)  
Antiguo 03/12/2008, 12:21
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: while dentro de while?

fijate:
Código PHP:

$result2
=mysql_query("select * from comentarios where id",$connect); 
falta el id del campo id
tendria que ser algo asi:
Código PHP:

$result2
=mysql_query("select * from comentarios where id = 32",$connect); 
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
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 15:09.