Foros del Web » Programando para Internet » PHP »

Impedir un salto en un bucle Do ... while

Estas en el tema de Impedir un salto en un bucle Do ... while en el foro de PHP en Foros del Web. Hola. Ante todo gracias por atender mi pregunta. Tengo una tabla noticias y un campo publicar. Este se rellenara con si o no dependiendo de ...
  #1 (permalink)  
Antiguo 26/10/2011, 03:19
jledi
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Impedir un salto en un bucle Do ... while

Hola. Ante todo gracias por atender mi pregunta.

Tengo una tabla noticias y un campo publicar. Este se rellenara con si o no dependiendo de si se quiere o no visualizar al publico.

Tengo la siguiente estructura que se repite con un do ... while:

<?php do { ?>

<div id="noticia"></div>


<?php } while ($row_noticias = mysql_fetch_assoc($noticias)); ?>

Entonces quiero comprobar si ese campo (publicar) esta relleno con si o no:

<?php do {
if ( $row_noticias['publicar'] == "si" ) { ?>

<div id="noticia"></div>


<?php } } while ($row_noticias = mysql_fetch_assoc($noticias)); ?>

Me lo comprueba pero me contabiliza la vuelta y solo quiero que salgan 3 registros.
Así que si el tercero es no me sale el espacio de la noticia y no sigue con la siguiente.
¿Como puedo hacer para que me lo compruebe sin que me cuente una vuelta?

Espero haberme explicado. Gracias.
  #2 (permalink)  
Antiguo 26/10/2011, 03:30
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Respuesta: Impedir un salto en un bucle Do ... while

Cambia el do while por un while y a ver si así te funciona mejor
  #3 (permalink)  
Antiguo 26/10/2011, 03:42
jledi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Impedir un salto en un bucle Do ... while

Gracias por tu respuesta.
Que va, me hace dos registros el primero no me lo pone.

La cuestión es que la repetición la hago con dreamweaber y no se modificarla demasiado. Porque tampoco se donde cuenta las vueltas, etc...
  #4 (permalink)  
Antiguo 26/10/2011, 07:30
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Impedir un salto en un bucle Do ... while

Podrías pasarnos el código completo de la pagina que estas ejecutando?
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 26/10/2011, 07:40
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Impedir un salto en un bucle Do ... while

por que haces dos bluce ??
  #6 (permalink)  
Antiguo 26/10/2011, 07:45
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: Impedir un salto en un bucle Do ... while

porque no le agregas una condición para que cuando llegue al tercer registro se detenga el do-while...

<?php
$i=0;
$sw=true;
do
{
if ( $row_noticias['publicar'] == "si" )
{ ?><div id="noticia"></div>

<?php
$i++;
if($i==3)
{
$sw=false;
//prueba si te funciona un 'break;'
}
}
} while ($row_noticias = mysql_fetch_assoc($noticias) AND $sw=true);
?>

Lo estoy pensando en lógica de C++, cualquier cosa deberías investigar un poco acerca de las condiciones de parada en un do-while.
  #7 (permalink)  
Antiguo 26/10/2011, 07:48
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: Impedir un salto en un bucle Do ... while

Cita:
Iniciado por mcun Ver Mensaje
por que haces dos bluce ??
no está haciendo dos bucles, tiene una parte del código que tiene, y otra parte del código que quiere =)
  #8 (permalink)  
Antiguo 26/10/2011, 07:50
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Impedir un salto en un bucle Do ... while

mmm que postee el script completo ...
  #9 (permalink)  
Antiguo 26/10/2011, 08:58
jledi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Impedir un salto en un bucle Do ... while

Arriba tengo la tipica consulta de dreamweaber y una repeticion de tres registros.

$maxRows_noticias = 3;
$pageNum_noticias = 0;
if (isset($_GET['pageNum_noticias'])) {
$pageNum_noticias = $_GET['pageNum_noticias'];
}
$startRow_noticias = $pageNum_noticias * $maxRows_noticias;

mysql_select_db($xxxxxx, $xxxxxx);
$query_noticias = "SELECT * FROM noticias ORDER BY fecha DESC";
$query_limit_noticias = sprintf("%s LIMIT %d, %d", $query_noticias, $startRow_noticias, $maxRows_noticias);
$noticias = mysql_query($query_limit_noticias, $xxxxx) or die(mysql_error());
$row_noticias = mysql_fetch_assoc($noticias);

if (isset($_GET['totalRows_noticias'])) {
$totalRows_noticias = $_GET['totalRows_noticias'];
} else {
$all_noticias = mysql_query($query_noticias);
$totalRows_noticias = mysql_num_rows($all_noticias);
}
$totalPages_noticias = ceil($totalRows_noticias/$maxRows_noticias)-1;
?>


No hace dos bucles. El primero si y el segundo es un if para comprobar si tiene el campo publicar en si o no. Se hacer otro tipo de bucle pero no quiero cambiar la paginación que me hace dreamweaber porque seria un coñazo. Tambien tengo en otra pagina un despliegue de todas las noticias donde tendria que hacer la misma comprobación. Solo quiero que no me cuente las comprobaciones negativas porque sino me deja un espacio. dentro del do hay html.

Etiquetas: bucle, impedir, mysql, registro, salto, tabla
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 16:29.