Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas al tratar de imprimir resultado de consulta una sola ves

Estas en el tema de problemas al tratar de imprimir resultado de consulta una sola ves en el foro de PHP en Foros del Web. hola tengo problemas con un resultado de una consulta y es que necesito que primero se imprima el primer resultado y luego los otros resultados ...
  #1 (permalink)  
Antiguo 18/07/2014, 20:13
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 9 meses
Puntos: 0
problemas al tratar de imprimir resultado de consulta una sola ves

hola

tengo problemas con un resultado de una consulta y es que necesito que primero se imprima el primer resultado y luego los otros resultados imprimirlos con REPETIR REGIÓN, el problema esta en repetir región que me vuelve a imprimir el primer resultado junto a los demás.

Código PHP:
$fac "SELECT tb1.id, tb2.factura FROM tb1 LEFT JOIN tb2 ON tb1.id=tb2.id ORDER BY  tb2.id DESC";
$q sprintf("%s LIMIT %d, %d"$q$startRow$fac);
$f mysqli_query($con$q) or die(mysqli_error());
$row mysqli_fetch_assoc($f); 

Código HTML:
<div class="resul-1"></div>
<?php do { ?>
<div class="resul-2"></div>
<div class="resul-3"></div>
<div class="resul-4"></div>
<?php } while ($row = mysqli_fetch_assoc($f)); ?> 
pero cuando hago lo anterior me da como resultado:
Código HTML:
<div class="resul-1"></div>
<div class="resul-1"></div>
<div class="resul-2"></div>
<div class="resul-3"></div> 
como puedo solucionar esto? desde ya gracias por responder...
  #2 (permalink)  
Antiguo 19/07/2014, 02:20
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 9 meses
Puntos: 67
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cambia:
Código HTML:
<div class="resul-2"></div> 
por
Código PHP:
<?php $Numero++; ?>
<div class="resul-<php echo $Numero;?>"></div>
Con esto lo que estás haciendo es que al literal result se le agregue el número que en cada pasada ira aumentando, por lo que no se te repetiría el nombre.

Por que quedaría algo así:
Código PHP:
<?php do { 
$Numero++; ?>
<div class="resul-<php echo $Numero;?>"></div>
<?php } while ($row mysqli_fetch_assoc($f)); ?>
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #3 (permalink)  
Antiguo 19/07/2014, 06:39
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
Iniciado por bookmaster Ver Mensaje
Cambia:
Código HTML:
<div class="resul-2"></div> 
por
Código PHP:
<?php $Numero++; ?>
<div class="resul-<php echo $Numero;?>"></div>
Con esto lo que estás haciendo es que al literal result se le agregue el número que en cada pasada ira aumentando, por lo que no se te repetiría el nombre.

Por que quedaría algo así:
Código PHP:
<?php do { 
$Numero++; ?>
<div class="resul-<php echo $Numero;?>"></div>
<?php } while ($row mysqli_fetch_assoc($f)); ?>
gracias por responder...

no funciono, me sigue dando el mismo resultado :S
  #4 (permalink)  
Antiguo 19/07/2014, 10:51
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 9 meses
Puntos: 67
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

¿Al final como lo has dejado?
Porque teóricamente alterando $Numero en cada vuelta, el nombre de la clase siempre va a ser diferente.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #5 (permalink)  
Antiguo 19/07/2014, 11:14
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Deberias usar el loop while en vez de el do-while:
Osea, usar esto:
Código PHP:
Ver original
  1. <div class="resul-1"></div>
  2. <?php while ($row = mysqli_fetch_assoc($f)); { ?>
  3. ...
  4. <?php }  ?>
en vez de esto:
Código PHP:
Ver original
  1. <div class="resul-1"></div>
  2. <?php do { ?>
  3. ...
  4. <?php } while ($row = mysqli_fetch_assoc($f)); ?>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 19/07/2014, 22:08
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
Iniciado por bookmaster Ver Mensaje
¿Al final como lo has dejado?
Porque teóricamente alterando $Numero en cada vuelta, el nombre de la clase siempre va a ser diferente.
el codigo me quedo así:

Código HTML:
<div class="resul-1">ejemplo1</div>

<?php do { 
$numero++;
 	?>
<div class="resul-<?php echo "$numero"; ?>">ejemplo<?php echo "$numero"; ?></div>
<?php } while ($row = mysqli_fetch_assoc($f)); ?> 
implemente justamente lo que propusiste pero me sigue dando el problema:
Código HTML:
<div class="resul-1">ejemplo1</div>
<div class="resul-2">ejemplo1</div>
<div class="resul-3">ejemplo2</div>
<div class="resul-4">ejemplo3</div> 
  #7 (permalink)  
Antiguo 19/07/2014, 22:11
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
Iniciado por NSD Ver Mensaje
Deberias usar el loop while en vez de el do-while:
Osea, usar esto:
Código PHP:
Ver original
  1. <div class="resul-1"></div>
  2. <?php while ($row = mysqli_fetch_assoc($f)); { ?>
  3. ...
  4. <?php }  ?>
en vez de esto:
Código PHP:
Ver original
  1. <div class="resul-1"></div>
  2. <?php do { ?>
  3. ...
  4. <?php } while ($row = mysqli_fetch_assoc($f)); ?>
hola, gracias por responder, pero no comprendo por que debería hacer el cambio? :S
  #8 (permalink)  
Antiguo 19/07/2014, 23:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
Iniciado por blackmel25 Ver Mensaje
hola, gracias por responder, pero no comprendo por que debería hacer el cambio? :S
La diferencia es sencilla: El bucle Do-While ejecuta al menos una vez el código que tiene al interior pues primero se ejecuta el código y luego se evalúa la condición, mientras que el bucle While primero evalúa la condición y luego ejecuta el código siempre y cuando se cumpla la condición.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 20/07/2014, 02:06
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 9 meses
Puntos: 67
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Asígnale a $Numero el valor inicial de 1 antes del bucle, ya que la primera pasada en el bucle cuenta como 1, y si ya lo habías mostrado el primero fuera de el normal que te lo repita.

De esta manera cuando haga la primera pasada en el bucle valdrá 2 y así no debería de salirte duplicado.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #10 (permalink)  
Antiguo 20/07/2014, 07:03
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
Iniciado por bookmaster Ver Mensaje
Asígnale a $Numero el valor inicial de 1 antes del bucle, ya que la primera pasada en el bucle cuenta como 1, y si ya lo habías mostrado el primero fuera de el normal que te lo repita.

De esta manera cuando haga la primera pasada en el bucle valdrá 2 y así no debería de salirte duplicado.
hola, disculpa por el mal entendido de los dos post en realidad estaba pensado en dos soluciones y no se porque las vi tan diferentes (problemas al tratar de imprimir resultado de consulta una sola ves, no mostrar el primer registro de un consulta, como? ), por eso abrí otro, buscaba mas alternativa o mejor dicho varias soluciones, pero es verdad lo que dices, es mas fácil estar en uno.

ahora lo otro, intente eso la primera ves y no resulto me seguía dando el mismo resultado lo cual no comprendí intente varias formas con $numero pero fue en vano...

empiezo a creer que se necesita alguna función de msql o un script php complicado :S
  #11 (permalink)  
Antiguo 20/07/2014, 09:34
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
empiezo a creer que se necesita alguna función de msql o un script php complicado :S
Nesesitas cambiar el tipo de loop como te indique, nada mas. Tan solo pruebalo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 20/07/2014, 14:31
 
Fecha de Ingreso: enero-2010
Mensajes: 59
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problemas al tratar de imprimir resultado de consulta una sola ves

Cita:
Iniciado por NSD Ver Mensaje
Nesesitas cambiar el tipo de loop como te indique, nada mas. Tan solo pruebalo.
funciona! :D gracias por el aporte...

el codigo quedo asi:

Código HTML:
<div class="resul-1">ejemplo1</div>

<?php while ($row = mysqli_fetch_assoc($f)){ 
$numero++;
 	?>
<div class="resul-<?php echo "$numero"; ?>">ejemplo<?php echo "$numero"; ?></div>
<?php } ?> 
y el resultado:
Código HTML:
<div class="resul-1">ejemplo1</div>
<div class="resul-2">ejemplo2</div>
<div class="resul-3">ejemplo3</div>
<div class="resul-4">ejemplo4</div> 

Etiquetas: mysql, resultado, select, sql, ves
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 13:30.