Foros del Web » Programando para Internet » PHP »

problemas con while y list

Estas en el tema de problemas con while y list en el foro de PHP en Foros del Web. Estimados Amigos, Tengo un inconveniente, necesito hacer una consulta a una base de datos, posee dos tablas una tabla de noticias y una tabla de ...
  #1 (permalink)  
Antiguo 02/02/2005, 04:53
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 21 años, 11 meses
Puntos: 0
problemas con while y list

Estimados Amigos,

Tengo un inconveniente, necesito hacer una consulta a una base de datos, posee dos tablas una tabla de noticias y una tabla de canales... la idea es presentar en una hora todos los canales pero con dos titulares en cada canal...

EJEMPLO:

CANAL 1
- noticia 1
- noticia 2
CANAL 2
- noticia 1
- noticia 2
ETC...

El codigo que uso es:

Código PHP:
    $query_noticias3 "SELECT id, titulo, resena, texto, foto FROM `noticias` WHERE `canal` =$idcanal ORDER BY `id` DESC  LIMIT 0 , 30";
$noticias3 mysql_query($query_noticias3$sistema) or die(mysql_error());
$row_noticias3 mysql_fetch_assoc($noticias3);

while (
$row_noticias3 mysql_fetch_assoc($noticias3)) {
$notiid $row_noticias3['id'];

echo 
"";

Si me pueden dar una mano.. puedo hacer que se muestre todos los canales... pero para que cada canar me muestr los dos titulares.. no me funciona.. solo me salen titulares en el primer canal...

si alguien tiene una idea de como deberia de trabajar la sentencia sqp, le agradeceria.


Salud!
  #2 (permalink)  
Antiguo 02/02/2005, 04:57
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 21 años, 11 meses
Puntos: 0
aca les coloco el codigo real...

Código PHP:
mysql_select_db($database_sistema, $sistema);
$query_canales = "SELECT * FROM canales";
$canales = mysql_query($query_canales, $sistema) or die(mysql_error());
$row_canales = mysql_fetch_assoc($canales);
$totalRows_canales = mysql_num_rows($canales);





<?php do { ?>
<br><table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <th width="100%" scope="col"><div align="left"><span class="style4"><img src="imagesnovopan/bullet.gif" width="20" height="12"> <?php $calid $row_canales['id'];
$canalid $row_canales['canal'];

echo 
"<b><a href=\"noticiascanal.php?id=$calid\" class=\"linknegro\">$canalid</a></b>"?> </span></div></th>
    <th width="10" valign="bottom" scope="col"><img src="imagesnovopan/top_productos.gif" width="68" height="11" border="0" align="right"></th>
  </tr>
  <tr bgcolor="#FF9900">
    <td height="1" colspan="2"></td>
  </tr>
</table>



<?php
$idcanal 
$row_canales['id'];
    
//query novocentros
    
$query_noticias3 "SELECT id, titulo, resena, texto, foto FROM `noticias` WHERE 1 AND `canal` =$idcanal ORDER BY `id` DESC  LIMIT 0 , 2";
    
$noticias3 mysql_query($query_noticias3$sistema) or die(mysql_error());
    
$row_noticias3 mysql_fetch_assoc($noticias3);


    while (
$row_noticias3 mysql_fetch_assoc($noticias3)) {
     
    
$notiid $row_noticias3['id'];
     
$notititulo $row_noticias3['titulo'];
     
$notiresena $row_noticias3['resena'];
     
$notitexto $row_noticias3['texto'];
     
$notifoto $row_noticias3['foto'];

    echo 
"<table width=\"90%\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\">
     <tr>
    <td><table><a href=\"noticiasleer.php?id=$notiid\"><img border=\"0\" src=\"../admin/noticias_foto_bv.php?key=$notiid\" width=\"80\" align=\"left\" hspace=\"5\"></a><a href=\"noticiasleer.php?id=$notiid\" class=\"linknaranja\">$notititulo</a><br>$notiresena</table></td>
    </tr>
    </table>"
;

    }
?>

<?php } while ($row_canales mysql_fetch_assoc($canales)); ?>
  #3 (permalink)  
Antiguo 02/02/2005, 05:01
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 21 años, 11 meses
Puntos: 0
Hola amigos... he verificado que el sistema si me funciona...:) mi problema estaba en que solo tenia una noticia en cada uno de los canales... pero si tengo un problema que no logro resolver... por ejemplo.. en un canal tengo 2 noticias... cuando hago la consulta solo me muestra una... no se que sucede con el otro.. el ultimo registro se pierde... alguna idea?
  #4 (permalink)  
Antiguo 02/02/2005, 05:18
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
El problema creo que está en que en la segunda consulta pones un mysql_fetch_assoc de más antes del bucle while:
Código PHP:
    $query_noticias3 "SELECT id, titulo, resena, texto, foto FROM `noticias` WHERE 1 AND `canal` =$idcanal ORDER BY `id` DESC  LIMIT 0 , 2";
    
$noticias3 mysql_query($query_noticias3$sistema) or die(mysql_error());
    
    
// creo que la línea de abajo está de más y al volver a llamar a la misma instruccion en el while pierdes una fila
    // $row_noticias3 = mysql_fetch_assoc($noticias3);


    
while ($row_noticias3 mysql_fetch_assoc($noticias3)) {
    
    
$notiid $row_noticias3['id'];
    
$notititulo $row_noticias3['titulo'];
    
$notiresena $row_noticias3['resena'];
    
$notitexto $row_noticias3['texto'];
    
$notifoto $row_noticias3'foto']; 
En la primera consulta(la que anida la segunda) no tienes ese problema porque ejecutas el bucle con condición final de forma que la lectura previa que haces con mysql_fetch_assoc no se pierde hasta el final.

Creo que es eso...

Salu2 ;)
__________________
[+]
[+]
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 14:00.