Foros del Web » Programando para Internet » PHP »

sacar el campo siguiente (mysql)

Estas en el tema de sacar el campo siguiente (mysql) en el foro de PHP en Foros del Web. Buenas, no se si este hilo va aqui, perdón si me equivoco. He estado buscando alguna solución en las faqs pero no he encontrado nada. ...
  #1 (permalink)  
Antiguo 04/02/2006, 10:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 27
Antigüedad: 12 años, 2 meses
Puntos: 0
sacar el campo siguiente (mysql)

Buenas, no se si este hilo va aqui, perdón si me equivoco.
He estado buscando alguna solución en las faqs pero no he encontrado nada. Os cuento el problema.

Tengo un archivo php que extrae los datos de la base para mostrar algo parecido a una ficha (nombre/precio/descripción...). En esa ficha me gustaría poner un ANTERIOR/SIGUIENTE pero no encuentro ninguna forma para hacerlo. No me va a funcionar $id+1 ;)

Revisando los manuales de php.net leí algo, pero supongo dirigido a algo que desconozco ( http://es.php.net/manual/es/function.next.php )

Si me podeis echar una mano para sacar el campo siguiente (hago una consulta sacando id y muestro el resultado con un while), agradecido incluso después de muerto
  #2 (permalink)  
Antiguo 04/02/2006, 10:43
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 14 años, 4 meses
Puntos: 2
hola, mmm .. bueno, creo que con un script de paginación solucionarías el problem ...

aca te pongo uno que alguna vez encontre...

SQL_CALC_FOUND_ROWS -> para minimizar el tiempo, optimizando la consulta

Código PHP:
//haz tu conexion a la bd aca//

if (!isset($pag)) $pag 1// Por defecto, pagina 1
$tampag 10;//en tu caso podría ser 1, para que te muestre una sola ficha a la vez
$reg1 = ($pag-1) * $tampag;
$result mysql_query("SELECT SQL_CALC_FOUND_ROWS los campos que quieras FROM tu tabla"$link); 
if (
mysql_num_rows($result))
{
$result2 mysql_query("SELECT FOUND_ROWS()"$tuConexion);
list(
$total) = @mysql_fetch_array($result2);
while (
$row = @mysql_fetch_array($result))
{
echo 
"aca generas la ficha por medio de tablas, div´s... etc etc";
}
echo 
paginar($pag$total$tampag"tuScript.php?pag=");
}
else
echo 
"aca informas que no hay rows en la DB..."

bueno, espero te sirva...

un saludo...
__________________
MWNS
Mario Navas
http://marionavas.com
  #3 (permalink)  
Antiguo 04/02/2006, 13:07
 
Fecha de Ingreso: septiembre-2005
Mensajes: 27
Antigüedad: 12 años, 2 meses
Puntos: 0
ok. Con tu ejemplo no he hecho demasiado pero a raiz de la idea de paginación me he dado una vuelta y al final encontré algo:
( http://www.xlwebmasters.com/modules....&f=doc2&id=304 )
Código PHP:
<?php require("cab.php"); ?>
<?php 
require("conecta.php"); ?>

<?php
//Conexión a la Base de datos, puede hacerse en un Include
//para llamar a un fichero con la configuración, o ponerlo todo aquí.
//$num es una variable con el número de página que nos pasa esta misma
//página cuando pulsamos sobre los links de los nº de página.
//Si $num está vacio significa que es la primera vez que entramos en
//la página y le asignamos un 0.
IF ($num>0) { $n=$num;} ELSE { $n=0; }
//Contar cuantos registros hay
$conta="SELECT id FROM articulos";
$result2=mysql_query($conta,$conexion);
$quants=mysql_num_rows($result2);
//Busca 1 registro
$sql="SELECT * FROM articulos ORDER BY id DESC LIMIT ".$n.", 1";
$result=mysql_query($sql,$conexion);
if (
$row=mysql_fetch_array($result))
{  
   echo 
"<TABLE BORDER='0'>";  
   DO  
   {
     echo 
"<TR><TD>".$row["nombre"]."</TD> </TR>";  
   }
   WHILE (
$row=mysql_fetch_array($result));  
  
   echo 
"</TABLE>";
}
//PAGINACIÓN
echo "<HR><TABLE BORDER='0' ALIGN='center' WIDTH='95%'><TR>";
//Muestra por pantalla el número total de artículos encontrados
echo "<TD ALIGN='left'> Encontrados ".$quants." artículos </TD>";
echo
"<TD ALIGN='RIGHT'>";
echo 
"<FONT FACE='Arial' SIZE='-1' COLOR='#336699'>Páginas: </FONT>";
//Mientras $i no sea igual o superior al total encontrado se
//incrementa de 15 en 15. $i representa el identificador en
//la Tabla del número de registro que se buscará en el siguiente Select.
//$a es el número de págians encontrado.
FOR ($i=0$i$quants$i=$i+1)
{   
    
$a=$a+1//Incrementamos el número de página 
    //Si $n (número de registro donde empieza la busqueda actual actual)
    //es igual a $i se marca en negrita para resaltar la página en la que estamos.   
    
IF ($n==$i)   
    {    
 
//Ponemos el link a la misma página peró con un número de registro cada vez diferente
        
echo '<A HREF="mirar.php?num='.$i.'"> [<strong>'.$a.'</strong>] </A> ';
    }   
    ELSE
    {
        echo 
'<A HREF="mirar.php?num='.$i.'">['.$a.']</A> ';   
    }
}
echo 
"</TD></TR></TABLE>";
?> 
</body>
</html>
Ahora parece que funciona!

muchas gracias en cualquier caso
  #4 (permalink)  
Antiguo 04/02/2006, 13:09
Avatar de MWNS  
Fecha de Ingreso: julio-2003
Mensajes: 528
Antigüedad: 14 años, 4 meses
Puntos: 2
__________________
MWNS
Mario Navas
http://marionavas.com
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 19:58.