Foros del Web » Programando para Internet » PHP »

Leer registros bd php

Estas en el tema de Leer registros bd php en el foro de PHP en Foros del Web. Buen dia mi pagina se refresca cada 2 minutos tengo una duda no busco como leer los registros de la base de datos solo cuando ...
  #1 (permalink)  
Antiguo 07/10/2014, 10:03
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Leer registros bd php

Buen dia mi pagina se refresca cada 2 minutos tengo una duda no busco como leer los registros de la base de datos
solo cuando se refresque la pagina
ejemplo

BD
ID VALOR
----------
1 12364
2 12248
3 12344
4 12343
5 12123
6 15674


digamos que cuando se refresque mi pagina me muestre el primer registro
cuando se vuelva refrescar mi pagina me muestre el primero y segundo registro y asi con el tercer registro , cuando no exista mas registros en la base de datos muestre un echo "Finalizado"

este es mi codigo
Código PHP:
$sms_lista="SELECT * FROM datos  ORDER BY id ASC LIMIT 1";
        
$exe_lista=mysql_query($sms_lista);
        
        
$nConfig mysql_num_rows ($exe_lista);  
          
        if (
$nConfig 0)  
        {  
            for (
$i=0$i<$nConfig$i++)  
            {  
                
$verConfig mysql_fetch_array($exe_lista);  
                
$CargaConfig[$i] = $verConfig["valor"];  
        echo 
$CargaConfig[$i];
            }  
                      
        } 
  #2 (permalink)  
Antiguo 07/10/2014, 11:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer registros bd php

Podrías utilizar una variable de sesión o una cookie cuyo valor vaya incrementándose de uno en uno antes de cada consulta a la BD.

Código PHP:
Ver original
  1. $_SESSION['limite'] = isset($_SESSION['limite']) && $_SESSION['limite'] >= 1 ? ++$_SESSION['limite'] : 1;
  2. $query = mysql_query("SELECT valor FROM datos ORDER BY id ASC LIMIT 0, {$_SESSION['limite']}");
  3. $total = mysql_num_rows($query);
  4. if ($total && $_SESSION['limite'] <= $total){
  5.     while ($row = mysql_fetch_array($query)){
  6.         echo "Valor: {$row['valor']}<br />";
  7.     }
  8. }
  9. else if ($total && $_SESSION['limite'] > $total){
  10.     while ($row = mysql_fetch_array($query)){
  11.         echo "Valor: {$row['valor']}<br />";
  12.     }
  13.     echo 'Finalizado';
  14. }
  15. else{
  16.     echo 'No se encontraron datos';
  17. }

De esta forma, al cargar la página, inicias o mantienes una sesión y verificas primero si la variable de sesión $_SESSION['limite'] ha sido establecida y si su valor es mayor o igual a 1; de ser así, incremento su valor en uno, caso contrario, le asigno 1 como valor. Obviamente, la asignación del 1 como valor de la variable de sesión solo se realizará en la primera consulta.

Luego, en la consulta, tomo a todos los datos de la tabla, empezando desde el primero hasta el límite que haya establecido, por ejemplo, al inicio será solo 1, luego 2 y así sucesivamente. Calculo el total obtenido y hago las siguientes verificaciones:
  • Si hay datos (uno o más) y el límite establecido en la variable de sesión es menor o igual al total de datos obtenidos de la consulta, imprimo los datos resultantes.
  • Si hay datos (uno o más) y el límite es mayor al total de registros, imprimo los datos resultantes y, al final, un mensaje de 'Finalizado'.
  • Si no hay datos en la tabla, muestro un mensaje avisando de esto al usuario.

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

Última edición por Alexis88; 07/10/2014 a las 12:17 Razón: Corrección
  #3 (permalink)  
Antiguo 07/10/2014, 12:35
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Leer registros bd php

Hola buenas tardes Alexis88 agradezco tu valioso tiempo y apoyo, muchas gracias.

Probé el código que me enviaste me muestra este mensaje, me podrías apoyar porfa.


Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\gps\recorre.php on line 5
  #4 (permalink)  
Antiguo 07/10/2014, 13:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer registros bd php

¿Y cuál es la línea 5 de tu código? ¿Podrías mostrarnos todo el código que tienes hecho?
__________________
«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
  #5 (permalink)  
Antiguo 07/10/2014, 13:13
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Leer registros bd php

En realidad estoy probando el codigo que me enviaste

Código PHP:
<?php
session_start
();

$_SESSION['limite'] = isset($_SESSION['limite']) && $_SESSION['limite'] >= ? ++$_SESSION['limite'] : 1;
$query mysql_query("SELECT valor FROM datos ORDER BY id ASC LIMIT 0, $_SESSION['limite']");
$total mysql_num_rows($query);
if (
$total && $_SESSION['limite'] <= $total){
    while (
$row $query->fetch_array()){
        echo 
"Valor: {$row['valor']}<br />";
    }
    
$query->free();
}
else if (
$_SESSION['limite'] > $total){
    while (
$row $query->fetch_array()){
        echo 
"Valor: {$row['valor']}<br />";
    }
    
$query->free();
    echo 
'Finalizado';
}
else{
    echo 
'No se encontraron datos';
}
?>
me muestra un mensaje de error

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\gps\recorre.php on line 5
  #6 (permalink)  
Antiguo 07/10/2014, 13:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer registros bd php

Fíjate que, en la consulta, puse a $_SESSION['limite'] entre llaves {}. Esto con el fin de que sea interpretado como la variable que es y no como texto plano. Corrige eso.

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
  #7 (permalink)  
Antiguo 07/10/2014, 14:06
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Leer registros bd php

Lo siento Alexis88 la verdad no le doy a ese error, de antemano agradezco tu ayuda, estoy mu agradecido por tu tiempo dedicado
  #8 (permalink)  
Antiguo 07/10/2014, 14:15
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer registros bd php

¿Hiciste lo que te comenté en mi respuesta anterior? Porque hice una prueba local y funciona correctamente.
__________________
«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 07/10/2014, 14:33
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Leer registros bd php

sinceramente no encuentro ninguno entre $_SESSION['limite'] entre llaves {} y no busco como solucionarlo, disculpas de verdad.
  #10 (permalink)  
Antiguo 07/10/2014, 14:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer registros bd php

Hombre, fíjate bien:

Código PHP:
Ver original
  1. $query = mysql_query("SELECT valor FROM datos ORDER BY id ASC LIMIT 0, {$_SESSION['limite']}");

Fíjate cómo $_SESSION['limite'] está entre llaves. Realiza ese cambio y prueba.

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
  #11 (permalink)  
Antiguo 07/10/2014, 14:45
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Leer registros bd php

Asi lo tengo

<?php
session_start();
$_SESSION['limite'] = isset($_SESSION['limite']) && $_SESSION['limite'] >= 1 ? ++$_SESSION['limite'] : 1;
$query = mysql_query("SELECT valor FROM datos ORDER BY id ASC LIMIT 0, $_SESSION['limite']");
$total = mysql_num_rows($query);
if ($total && $_SESSION['limite'] <= $total){
while ($row = mysql_fetch_array($query)){
echo "Valor: {$row['valor']}<br />";
}
}
else if ($total && $_SESSION['limite'] > $total){
while ($row = mysql_fetch_array($query)){
echo "Valor: {$row['valor']}<br />";
}
echo 'Finalizado';
}
else{
echo 'No se encontraron datos';
}
?>

me muestra este error ahora

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\gps\recorre.php on line 4
  #12 (permalink)  
Antiguo 07/10/2014, 14:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Leer registros bd php

Emilio, por enésima vez te digo que debes de colocar a la variable $_SESSION['limite'], que se encuentra al final de la consulta, entre llaves.

Código PHP:
Ver original
  1. $query = mysql_query("SELECT valor FROM datos ORDER BY id ASC LIMIT 0, {$_SESSION['limite']}");

Es lo que te vengo diciendo desde hace un buen rato pero o aún no te das cuenta o no quieres hacerme caso.

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
  #13 (permalink)  
Antiguo 07/10/2014, 15:10
 
Fecha de Ingreso: septiembre-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Leer registros bd php

Gracias Alexis88 por tu paciencia y tu valioso tiempo, gracias y mil disculpas. graciiaaas de nueva cuenta

Etiquetas: bd, mysql, 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 21:20.