Foros del Web » Programando para Internet » PHP »

while condicion doble no camina

Estas en el tema de while condicion doble no camina en el foro de PHP en Foros del Web. no consigo que me funcione este while con condicion doble, si le quito la segunda condicion anda perfecto alguna sugerencia? @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver ...
  #1 (permalink)  
Antiguo 27/11/2012, 13:30
 
Fecha de Ingreso: noviembre-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
while condicion doble no camina

no consigo que me funcione este while con condicion doble, si le quito la segunda condicion anda perfecto
alguna sugerencia?
Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3.  
  4.  
  5. $consulta = mysql_query("SELECT * FROM post WHERE tipo='Noticia'");
  6. $k=0;
  7.  
  8. while ($row = mysql_fetch_array($consulta, MYSQL_ASSOC) && $k<3) {
  9.    
  10.    
  11.    
  12.       echo "<ul><li><a href=#>".$row["tituloPost"]."</a></li>";
  13.      $k=$k+1;
  14. }
  15. ?>
edito perdon puse el codigo mal

Última edición por antiheroe_408; 27/11/2012 a las 13:40 Razón: codigo incorrecto
  #2 (permalink)  
Antiguo 27/11/2012, 13:41
 
Fecha de Ingreso: noviembre-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
Respuesta: while condicion doble no camina

perdon que edite pero puse mal el codigo
  #3 (permalink)  
Antiguo 27/11/2012, 13:52
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: while condicion doble no camina

observaciones, quieres limitar el listado a tres? Pues hazlo directamente en la consulta
Código SQL:
Ver original
  1. SELECT * FROM post WHERE tipo='Noticia' LIMIT 3
y esto
Código PHP:
Ver original
  1. $k=$k+1;
se puede simplificar asi
Código PHP:
Ver original
  1. $k++;
  #4 (permalink)  
Antiguo 27/11/2012, 15:13
 
Fecha de Ingreso: noviembre-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
Respuesta: while condicion doble no camina

respecto al $k++, prefiero hacerlo de la otra manera pues funciona en todos los lenguages, despues vienen errores de que si ++var no es soportado pero si var++
, prefiero pisar sobre seguro,
la manera que me propones no la conocia, gracias por la respuesta la probare, sin embargo, sigo sin saver como hacer el mysql_fetch_array, pero que me recorra la tabla al revez
  #5 (permalink)  
Antiguo 27/11/2012, 15:24
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: while condicion doble no camina

Pues si es en PHP no tiene nada que ver como funcionen otros lenguajes, si tu usas $k++ funcionara en cualquier PHP que lo ejecute
Saludos
  #6 (permalink)  
Antiguo 27/11/2012, 16:41
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: while condicion doble no camina

bien simplificado sin tener que cambiar tu consulta:

Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3. $consulta = mysql_query("SELECT * FROM post WHERE tipo='Noticia'");
  4.  
  5. while ($row = mysql_fetch_array($consulta, MYSQL_ASSOC) ) {
  6. $k++;
  7.     if($k < 3){
  8.     echo "<ul><li><a href=#>".$row["tituloPost"]."</a></li>";
  9.     }
  10.     else{
  11.     break;
  12.     }
  13. }
  14. ?>
  #7 (permalink)  
Antiguo 27/11/2012, 16:45
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: while condicion doble no camina

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
bien simplificado sin tener que cambiar tu consulta:

Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3. $consulta = mysql_query("SELECT * FROM post WHERE tipo='Noticia'");
  4.  
  5. while ($row = mysql_fetch_array($consulta, MYSQL_ASSOC) ) {
  6. $k++;
  7.     if($k < 3){
  8.     echo "<ul><li><a href=#>".$row["tituloPost"]."</a></li>";
  9.     }
  10.     else{
  11.     break;
  12.     }
  13. }
  14. ?>
Eso es tonto, para que traer todos los registros si solo vas a usar tres?
  #8 (permalink)  
Antiguo 27/11/2012, 18:22
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: while condicion doble no camina

Cita:
Iniciado por abimex Ver Mensaje
Eso es tonto, para que traer todos los registros si solo vas a usar tres?
En ningun momento he dicho que es la mejor manera, solo una manera sencilla de hacer lo que antiheroe_408 pide, sin cambiar la consulta sql nada mas.

Saludos
  #9 (permalink)  
Antiguo 27/11/2012, 18:28
 
Fecha de Ingreso: noviembre-2012
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
Respuesta: while condicion doble no camina

abimex tiene razon, aunque no me entendiste cuando decia lo de k++, cuando programas en varios lenguajes distintos, personalmente prefiero hacer las cosas de manera que funcionen para todas y asi no tener que recordar, ha , en java puedo usar esto pero en pascal no, y en php puedo usar esto pero en javascript ni se te ocurra, siempre que es posible uso un metodo que se que funciona con todas, no siempre es posible obviamente, pero cuando es posible, pues lo ago asi.

respecto a el tema de obtener los resultados del fetch array en sentido contrario al habitual, al final tendre que usar un contenedor, queria evitarlo pero veo que nadie conoce otra manera. gracias por las respuestas,
  #10 (permalink)  
Antiguo 27/11/2012, 18:47
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: while condicion doble no camina

En javascript si funciona el $k++;

Etiquetas: doble, mysql
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 06:34.