Comunidad de diseño web y desarrollo en internet online

Cortar cadenas de datos en paginas de 10

Citar            
MensajeEscrito el 21 Dic 2007 07:36 pm
Hola a todos. Tengo un problema.. Resulta que tengo una pagina a la cual puse un include() de un archivo php. Este archivo tiene datos de conexión a una base de datos y cuando se ejecuta el archivo devuelve una lista con todos los datos de la DB. El tema es que yo quisiera hacer que devuelva solo 10 datos y cree paginas dentro de la pagina con los demás datos todos divididos en cantidades de 10 me explico?

Muchas gracias amigos.

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 21 Dic 2007 10:24 pm

Código :

SELECT SQL_CALC_FOUND_ROWS * FROM tabla LIMIT 0,10;

Para traer paginados los resultados. Nota cómo agrego el SQL_CALC_FOUND_ROWS, que nos servirá en la siguiente línea de código.

Sin desconectar de mysql, ejecuta el siguente código:

Código :

SELECT FOUND_ROWS();

Esto te traería el total de registros.


Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 26 Dic 2007 01:46 pm
Dano gracias por responder.. Intente pero no pude porque me di cuenta que el problema no esta en cortar la cadena de datos sino en como cargar los demás datos una vez cortados.. Explico mejor..

Resulta que al cargar los datos de la DB lo hago a través de for() y como parámetro de búsqueda ID que en la DB lo tengo en autoincrement… el problema esta en como hago una ves que ya se cargaron los primeros 10 usuarios para que al apretar por ejemplo “pagina 2” cargue los siguientes 10 usuarios.. Teniendo en cuenta que como ID es autoincrment si alguna fila de la DB fue borrada los valores pueden estar salteados…

Quizás me digan que puede ser mejor no tener como parámetro de búsqueda ID y utilizar otro dato.. El problema es que necesito mostrar todos los datos de la fila no solo el de ID… les paso el código por si llegara a servir…


Código :

<?php
/*----------------------------------------------------------*/
include ("mysql_conect/head.php");
/*----------------------------------------------------------*/

session_name($Sesion);
session_start();

$Dia = date("d"); 
$Mes = date("n");  
$Año = date ("Y");

if ($DB=="" or $Tabla==""){die ('<div id="Usuarios_Profile_Error"><img src="imagenes/maquetacion/index_of/logo_grande_error.png"><br><br>'.$Verificar["Error_DB"].'</div>');}

$Conexion= mysql_connect("$Host", "$Usuario", "$Password") or die('<div id="Usuarios_Profile_Error"><img src="imagenes/maquetacion/index_of/logo_grande_error.png"><br><br>'.$Verificar["Error_Conect"].'</div>');
mysql_select_db("$DB");

$Cargar_Valor_Superior = mysql_query("SELECT MAX(id) AS id FROM `$Tabla`")or die('<div id="Usuarios_Profile_Error"><img src="imagenes/maquetacion/index_of/logo_grande_alert.png"><br><br>'.$Verificar["Error_Conect"].'</div>');
$Maximo= mysql_fetch_array($Cargar_Valor_Superior);
$IDE_Post=$Maximo['id'];

$B_Sexo=$_POST['sexo'];
$B_Entre_Edad=$Año-$_POST['edad_1'];
$B_Y_Edad=$Año-$_POST['edad_2'];
$B_Estado_Civil=$_POST['estado_civil'];
$B_Con_Foto=$_POST['c_foto'];
$B_Nombre=$_POST['nombre'];
$B_Apellido=$_POST['apellido'];
$B_Ciudad=$_POST['ciudad'];
$B_Provincia=$_POST['provincia'];
$Limite_Resultados=5;
$Busqueda="";

/* Comienzo Definicion de parametros de Busqueda */


if(isset($_POST['sexo'])){$Busqueda.="AND `sexo` LIKE '$B_Sexo'";}
if($_POST['edad_1']!="" && $_POST['edad_2']!=""){$Busqueda.="AND `año` <= '$B_Entre_Edad' AND `año` >= '$B_Y_Edad'";}
if($_POST['estado_civil']!=""){$Busqueda.="AND `estado_civil` LIKE '$B_Estado_Civil'";}
if($_POST['nombre']!=""){$Busqueda.="AND `nombre` LIKE '$B_Nombre'";}
if($_POST['apellido']!=""){$Busqueda.="AND `apellido` LIKE '$B_Apellido'";}
if($_POST['ciudad']!=""){$Busqueda.="AND `ciudad` LIKE '$B_Ciudad'";}
if($_POST['provincia']!=""){$Busqueda.="AND `provincia` LIKE '$B_Provincia'";}
if($B_Con_Foto=="si"){$Busqueda.="AND `foto_grande` != '$Foto_Default_Grande'";}
/* Final Definicion de parametros de Busqueda */




/* Comienzo Carga de Usuarios */

$Cargar_Filas = mysql_query("SELECT * FROM `$Tabla` WHERE 1 ".$Busqueda) or die('<div id="Usuarios_Profile_Error"><img src="imagenes/contenidos/index_of/logo_grande_alert.png"><br><br>'.$Verificar["Error_Conect"].'</div>');
$Valor_Filas= mysql_num_rows($Cargar_Filas);

/****************************************************************************************/

if($Valor_Filas > $Limite_Resultados){

$Secciones=ceil($Valor_Filas/$Limite_Resultados);
$IDE_Cont=$IDE_Post;

for($C=0; $C<$Secciones; ++$C){
$ADD=$C+1;

echo "<a href='usuarios.php?s=".$ADD."&i=".$IDE_Cont."'>".$ADD."</a> - ";
$IDE_Cont=$IDE_Cont-5;

}
}

echo $Busqueda;

/****************************************************************************************/
if(!isset($_GET["i"])){$IDE=$IDE_Post;}else{$IDE=$_GET["i"];}

for($I = 0; $I<=$Limite_Resultados; ++$I){

if($I=="0"){/*ESPACIO EN BLANCO*/}else{

$Cargar_Datos = mysql_query("SELECT * FROM `$Tabla` WHERE `id`=".$IDE." ".$Busqueda."")or die('<div id="Usuarios_Profile_Error"><img src="imagenes/contenidos/index_of/logo_grande_alert.png"><br><br>'.$Verificar["Error_Conect"].'</div>');

if (mysql_num_rows($Cargar_Datos) !== 0) {

$Datos_Cargados = mysql_fetch_array($Cargar_Datos);

if($Dia==$Datos_Cargados['dia'] && $Mes==$Datos_Cargados['mes']){$Definir_Edad=($Año-$Datos_Cargados['año'])+1;}else{$Definir_Edad=($Año-$Datos_Cargados['año']);}
if($Datos_Cargados['sexo'] == 'm'){$Definir_Sexo="Masculino";}else if($Datos_Cargados['sexo'] == 'f'){$Definir_Sexo="Femenino";}else{$Definir_Sexo=$Null;}

$Cont='
<div id="Usuarios_Datos">
  <div id="Usuarios_Izquierdo">
    <div id="Usuarios_Foto_Chica">
      <a href="'.$Datos_Cargados["foto_grande"].'" rel="lightbox[roadtrip]">
        <img src="'.$Datos_Cargados["foto_chica"].'" width="120" height="90" border="0"/>
      </a>
    </div>
  </div>
  
  <div id="Usuarios_Derecho">
  <span class="Usuario_Titulo">Usuario '.$Datos_Cargados["nick"].'</span><br>
    <span class="Usuario_Palabras_Claves">
     <stong>Nombre:</stong> '.$Datos_Cargados["nombre"].'<br>
      <stong>Apellido:</stong> '.$Datos_Cargados["apellido"].'<br>
      <stong>Edad:</stong> '.$Definir_Edad.'<br><br><br>
     <a href="?nc='.$Datos_Cargados["nick"].'&nb='.$Datos_Cargados['nombre'].'&ap='.$Datos_Cargados['apellido'].'&sx='.$Definir_Sexo.'&ed='.$Definir_Edad.'&ec='.$Datos_Cargados['estado_civil'].'&ci='.$Datos_Cargados['ciudad'].'&pv='.$Datos_Cargados['provincia'].'&fg='.$Datos_Cargados['foto_grande'].'&fc='.$Datos_Cargados['foto_chica'].'&id='.$Datos_Cargados['id'].'&ht=height:300px" >Ver perfil completo de este usuario </a>
   </span>
  </div>
  
</div>';
$IDE=$IDE-1;

echo $Cont;
}else{$IDE=$IDE-1; $I-=1;}
}
}
/* Final Carga de Usuarios */
?>

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 27 Dic 2007 03:05 pm
Es por la forma en como lo haces man, la paginación NO se hace con la llave primaria, se hace usando LIMIT. Ese es el detalle, mira aqui seguro encuentras un tuto que ejemplifique como hacerlo:
Aqui

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.