Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Avanzar registro dentro de un while

Estas en el tema de Avanzar registro dentro de un while en el foro de Mysql en Foros del Web. Hola a todos, estoy intentando hacer una consulta para traer unas noticias de la base de datos pero se me presenta el siguiente conflicto, nececito ...
  #1 (permalink)  
Antiguo 16/10/2011, 22:35
 
Fecha de Ingreso: octubre-2011
Ubicación: colombia
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Avanzar registro dentro de un while

Hola a todos, estoy intentando hacer una consulta para traer unas noticias de la base de datos pero se me presenta el siguiente conflicto, nececito mostrar la consulta dentro de un div y que dentro de ese div alla dosregistros que traigo de la base de datos acontinuacion es lo que tengo


?php

require_once 'clases/conectarse2.php';




$reg=mysql_query("select * from promociones order by numero desc",$conexion)
or
die("Problemas en el select:".mysql_error());


while ($f=mysql_fetch_array($reg))
{
echo"
<div id=news1 class=news_style rel=\"primer noticia\" >

<div style=\"padding:5px;position:relative;margin-left:60px;width:300px;height:130px;float:left\">
<img src=\"images/promo1.png\" style=\"width:100px;height:100px\"/>
<div style=\"color:white;position:absolute;top:0px;widt h:180px;height:110px;right:0;\">
$f[texto]
</div>
<div style=\"color:white;position:absolute;top:115px;wi dth:180px;height:20px;right:0;\">
15000
</div>
</div>

<div style=\"padding:5px;position:relative;margin-left:60px;width:300px;height:130px;float:left\">
<img src=\"images/promo1.png\" style=\"width:100px;height:100px\"/>
<div style=\"color:white;position:absolute;top:0px;widt h:180px;height:110px;right:0;\">
$f[texto]
</div>
<div style=\"color:white;position:absolute;top:115px;wi dth:180px;height:20px;right:0;\">
15000
</div>
</div>

</div>

";
}






?>


el problema es que como el $f[texto] esta dentro del while dos veces pues trae el mismo registro al hacer el ciclo y yo necisito que traiga el siguiente que en el segundo ftexto traiga el siguiente.

lo que puedo hacer y funciona es sacar el div contenedor fuera del while solo imprimir un $f[texto] cada vez que aga el ciclo y limitar la consulta a dos pero no me sirve esa solucion ya que necesito hacer indeterminada numero de veces y que cada vez quede dentro de ese div que contiene todo alguien sabe si puedo hacer esto o algo parecido

en total lo que necesito es me quede el siguiente codigo pero en el primir $ftexto el primer registro de la base de datos y en el segundo $ftexto el segundo registro y que cuado termine haga nueva mente 3 y 4 registro 5 y sexto es decir de a dos
cada vez y que se repita hasta que se acaben los registros esto lo hago ya que estas promociones las estoy mostrando en un slide show que tiene ese formato predeterminado..

echo"
<div id=news1 class=news_style rel=\"primer noticia\" >

<div style=\"padding:5px;position:relative;margin-left:60px;width:300px;height:130px;float:left\">
<img src=\"images/promo1.png\" style=\"width:100px;height:100px\"/>
<div style=\"color:white;position:absolute;top:0px;widt h:180px;height:110px;right:0;\">
$f[texto]
</div>
<div style=\"color:white;position:absolute;top:115px;wi dth:180px;height:20px;right:0;\">
15000
</div>
</div>

<div style=\"padding:5px;position:relative;margin-left:60px;width:300px;height:130px;float:left\">
<img src=\"images/promo1.png\" style=\"width:100px;height:100px\"/>
<div style=\"color:white;position:absolute;top:0px;widt h:180px;height:110px;right:0;\">
$f[texto]
</div>
<div style=\"color:white;position:absolute;top:115px;wi dth:180px;height:20px;right:0;\">
15000
</div>
</div>

</div>

";
  #2 (permalink)  
Antiguo 17/10/2011, 01:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Avanzar registro dentro de un while

Este és un problema de programación, parece que usas php en el foro de php te sabran contestar mejor que aqui...

Pero para ir avanzando debes condicionar la apertura y cierre de la div al hecho que el registro que imprimes sea par (ya que quieres imprimir dos cada vez)...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 17/10/2011, 03:09
Avatar de azimutisima  
Fecha de Ingreso: mayo-2011
Mensajes: 107
Antigüedad: 12 años, 11 meses
Puntos: 14
Respuesta: Avanzar registro dentro de un while

Mientras lo mueven, pq n pruebas a hacer otro fecth dentro del while?

Seria incluir dentro del while la instrucción

$f=mysql_fetch_array($reg)

Entre el 1.er y el 2.ndo $f[texto]

Prueba y nos cuentas.
  #4 (permalink)  
Antiguo 17/10/2011, 14:09
 
Fecha de Ingreso: octubre-2011
Ubicación: colombia
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Avanzar registro dentro de un while

Muchachos muchas gracias por su respuestas, anoche tenia una laguna mental pero ya lo pude resolver, como se que la programcion genera muchas dudas y alguna le abra quedado la duda de como hacerlo aca les pongo el codigo con el cual lo resolvi me imprime de a dos registros por vez hasta que se acaben los registros dentro del div que necesitaba que se imprimiran y se imprime dos registros difenretes cada vez
con el fin de mostrarlos en un slide show dos cada vez.


Código PHP:

<div id=mynews>




<?php
require_once 'clases/conectarse2.php';    //conexion normal a la db
$reg1=mysql_query("select * from promociones order by numero desc",$conexion)// paso a reg1 el query
or
 die(
"Problemas en el select:".mysql_error());//si cae la consulta
$num=mysql_num_rows($reg1);//cuento cuantas filas hay y la paso a num



$num=$num-2;// a lo que hay en num le resto dos esto es por que como voy a mostrar los resultados de a dos enpezando desde 0



for( $i=0;$i<$num;$i++)// i empieza en 0 y va hasta que i sea menor a num

{

      
require_once 
'clases/conectarse2.php';    //conexion normal a la db

if ($i == 0){//si i vale cero que sera en la primir vuelta  
$reg=mysql_query("select * from promociones order by numero desc limit $i,2",$conexion)//selecione todo pero con la posicion i y dos registros
or
 die(
"Problemas en el select:".mysql_error());
}
else{
$i=$i+1;//aca i ya no vale cero ya que es la segunda vuelta o mas entonces le sumo uno a i para hacer la consulta 
//como la necesito; ejemplo: i en la segunda vuela vale uno le sumo otro uno para que i valga dos
//entoces consultara en la posicion dos y dos registros y asi sucecivamente en la siguiente vuelta i valdra 3
// le sumo 1 valdra 4 consultara todo en la posicion 4 dos registros segun el limite
//asi consulto de a dos siempre y en la posiscion que quiero no se si me entienden cualquier duda con mucho gusto 
//en el foro

$reg=mysql_query("select * from promociones order by numero desc limit $i,2",$conexion)
or
 die(
"Problemas en el select:".mysql_error());
}

      
    echo
"<div id=news1 class=news_style  rel=\"primer noticia\" >";    //ya esto es lo normal que imprima lo que se consulto anteriormente
while ($f=mysql_fetch_array($reg)) 
{
echo
"


<div style=\"padding:5px;position:relative;margin-left:60px;width:300px;height:130px;float:left\">
<img src="
.$f['foto']." style=\"width:100px;height:100px\"/>
<div style=\"color:white;position:absolute;top:0px;width:180px;height:110px;right:0;overflow:auto\">
 $f[texto]
</div>
<div style=\"color:white;position:absolute;top:115px;width:180px;height:20px;right:0;\">
 $f[fecha]
</div>
</div>




"
;
}
//fin del while
echo"</div>";


}
//fin del for

?>

</div>
muchas gracias por interesarse ya que me gusto mucho estos foros seguire consultando o ayudando si es que puedo si desean tener el slide show es free con mucho gusto lo aporto para mostrar noticias o promo o lo que quieran la ventaja es que muestra o parametriza por divs no por fotos y en el div pones lo que quieras como lo esta intentando hacer y ya teniendo la logica de como hacerlo pues creo que puede servir.
  #5 (permalink)  
Antiguo 18/10/2011, 12:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Avanzar registro dentro de un while

Amigo: te recomiendo... usar algun framework como CodeIgniter (es el mas simple) asi separas tus consultas SQL (el modelo) de las vistas (tu HTML / CSS), asi es todo mas claro...y podes preguntar mucho mas concreto


Cita:
<div style=\"padding:5px;position:relative;margin-left:60px;width:300px;height:130px;float:left\">
<img src=\"images/promo1.png\" style=\"width:100px;height:100px\"/>
<div style=\"color:white;position:absolute;top:0px;widt h:180px;height:110px;right:0;\">
Eso ni siquiera es PHP

Me algro que te ayudaron! un abrazo
__________________
The best powerful search engine for MSN messenger profiles I know is msn profile viewer. It's really good either if you have an e-mail address or not. Try it!

Etiquetas: php, query, registro, registros, select, sql
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 00:04.