Como hacer selecciones por partes de una base de datos con php.
Hola tengo una tabla de un catalogo de menaje de hosteleria el cual es inmenso y me gustaria sacar solo por partes cada elemento, es decir si tengo un articulo que son cuchillos y tengo 300 tipos como podria sacar unos 10 o 20 por página y en la siguiente los que le continuan.
<?php
$MaxMostrar=10; // <----- El máximo a mostrar
$peticion=$_POST['tu_articulo'];
$next=$_GET['next'];
mysql_connect("tu_host","tu_user","tu_pass");
$ordenar=mysql_db_query("$db_nombre","select * from $peticion");
$num=1;
$Suma=$next+$Maxmostrar;
if(!$_GET['next']){$Suma=$MaxMostrar;}
while($linea=mysql_fetch_array($ordenar))
{
if($num>=$next && $num<=$Suma)
{
echo "$linea['$peticion'];
}
$num++;
}
?>
Me imagino que se podrÃa hacer algo parecido, el caso es que nada más está la idea, =P en este caso debes de crear un link
<a href="tu_pag.php?next=<? #### ?>">Siguiente</a>
Debes de colocar en el link un script que incremente su valor dependiendo del numero de veces que se llame a sà mismo el archivo ! en este caso tendrÃas que sumar el máximo de cuchillos a mostrar por cada vez que se de clic, :P bien podria ser
<?php if($_GET['next'])
{
$next+=$MaxMostrar;
}
else
{
$next=$MaxMostrar*2;
}
?>
Pero es nada más para que te des una idea, la vdd lo estoy haciendo acá y no probé el script ! =P pero muévele !
$MaxMostrar=10; // <----- El máximo a mostrar
$peticion=$_POST['tu_articulo'];
$next=$_GET['next'];
mysql_connect("tu_host","tu_user","tu_pass");
$ordenar=mysql_db_query("$db_nombre","select * from $peticion");
$num=1;
$Suma=$next+$Maxmostrar;
if(!$_GET['next']){$Suma=$MaxMostrar;}
while($linea=mysql_fetch_array($ordenar))
{
if($num>=$next && $num<=$Suma)
{
echo "$linea['$peticion'];
}
$num++;
}
?>
Me imagino que se podrÃa hacer algo parecido, el caso es que nada más está la idea, =P en este caso debes de crear un link
<a href="tu_pag.php?next=<? #### ?>">Siguiente</a>
Debes de colocar en el link un script que incremente su valor dependiendo del numero de veces que se llame a sà mismo el archivo ! en este caso tendrÃas que sumar el máximo de cuchillos a mostrar por cada vez que se de clic, :P bien podria ser
<?php if($_GET['next'])
{
$next+=$MaxMostrar;
}
else
{
$next=$MaxMostrar*2;
}
?>
Pero es nada más para que te des una idea, la vdd lo estoy haciendo acá y no probé el script ! =P pero muévele !
Gracias m&m pero yo cojo los datos directamente de la tabla este es mi codigo.
Para la conexion:
<?php
session_start();
if(continuar==true){
//conexión con mysql
$conexion = mysql_connect("localhost", "xxxx", "xxxxx");
if($conexion == false){ //compruebo si no se produce
$continuar=false;
$mensaje="Conexión no realizada<br>";
}else{
$continuar = true; //compruebo si se produce
$mensaje = "Conexión realizada<br>";
$consulta = "select * from catalogo where familia='3' order by articulo;";
$resultado = mysql_db_query("xxxxxxx", $consulta);
if(resultado==true){
}
}
mysql_close($conexion);
}
Y luego en el html lo muestro de esta manera:
<?php
while($fila = mysql_fetch_row($resultado)){
print ("<tr>
<td class='Estilo16'>$fila[1]</td>
<td class='Estilo16'>$fila[3]</td>
<td class='Estilo16'><a href='mostrar_catalogo.php?img=$fila[7]&ref=$fila[1]&art=$fila[3]&enl=$fila[8]'><img src='$fila[7]' width=50% heigth=50% alt='Mostrar detalle'></a></td>
</tr>");
}
?>
Y es aqui donde quiero mostrar solo la primera parte de la selección es decir unos 10 artÃculos y a partir de ahà otros 10 etc. No se si tengo que crear una página para cada muestreo o con el código que me proporcionas lo hace solo, lo he probado pero no me ha ido muy bien no entiendo lo de $get y $post porque creo que en mi codigo no me hacen falta no se, tu que crees.
Para la conexion:
<?php
session_start();
if(continuar==true){
//conexión con mysql
$conexion = mysql_connect("localhost", "xxxx", "xxxxx");
if($conexion == false){ //compruebo si no se produce
$continuar=false;
$mensaje="Conexión no realizada<br>";
}else{
$continuar = true; //compruebo si se produce
$mensaje = "Conexión realizada<br>";
$consulta = "select * from catalogo where familia='3' order by articulo;";
$resultado = mysql_db_query("xxxxxxx", $consulta);
if(resultado==true){
}
}
mysql_close($conexion);
}
Y luego en el html lo muestro de esta manera:
<?php
while($fila = mysql_fetch_row($resultado)){
print ("<tr>
<td class='Estilo16'>$fila[1]</td>
<td class='Estilo16'>$fila[3]</td>
<td class='Estilo16'><a href='mostrar_catalogo.php?img=$fila[7]&ref=$fila[1]&art=$fila[3]&enl=$fila[8]'><img src='$fila[7]' width=50% heigth=50% alt='Mostrar detalle'></a></td>
</tr>");
}
?>
Y es aqui donde quiero mostrar solo la primera parte de la selección es decir unos 10 artÃculos y a partir de ahà otros 10 etc. No se si tengo que crear una página para cada muestreo o con el código que me proporcionas lo hace solo, lo he probado pero no me ha ido muy bien no entiendo lo de $get y $post porque creo que en mi codigo no me hacen falta no se, tu que crees.