Foros del Web » Programando para Internet » PHP »

No se como hacer esto...

Estas en el tema de No se como hacer esto... en el foro de PHP en Foros del Web. Hola amigos. Tengo una base de datos con Cien Mil registros: Cita: $query = "SELECT count(id) AS Total from rank WHERE id>$minreg-1 AND id<$maxreg+1"; .... ...
  #1 (permalink)  
Antiguo 10/12/2009, 16:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
No se como hacer esto...

Hola amigos. Tengo una base de datos con Cien Mil registros:
Cita:
$query = "SELECT count(id) AS Total from rank WHERE id>$minreg-1 AND id<$maxreg+1";
....
....
....
$query = "SELECT * from rank WHERE id BETWEEN $min and $max ORDER BY votos DESC, nombre ASC $limit";
En el primer $query cuento el total de registros entre $minreg y $maxreg. Ejemplo, si quiero 500 registros (que estén llenos en todos los campos, ver más abajo) cuento $minreg>0 y $maxreg<501 (cuenta 1,2,3,4 hasta el 500)
El segundo $query delimita entre que registros toma los 500 anteriores. Por ejemplo, $min=15000 y $max=15500 , entonces toma los 500 registros entre estos 2 valores y no de cualquier parte (podría ser entre 85000 y 85500, etc.).
Estas 4 variables ($minreg, $maxreg, $min y $max) las defino en otra página (por ejemplo, pagina1) y luego llamo al archivo que tiene estos $query (con un include).
Mi pregunta (después de tan larga explicación) es si es posible automatizar esto:
Cada vez que desde la página 1 llame al archivo con los $query, directamente sepa cuantos registros poner (o sea, que no busque registros de más, sino que ponga los que ya están llenos en los 6 campos de la tabla).

PD: Los 6 campos son: id, votos, promedio, nombre, descripcion y url.
Gracias!
  #2 (permalink)  
Antiguo 10/12/2009, 16:53
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: No se como hacer esto...

La verdad lo he leido dos veces y no me aclaro...... deberias poner mas codigo, no se de donde viene $min , ni $max , ni $limit que podria ser bastante importante...
  #3 (permalink)  
Antiguo 10/12/2009, 17:07
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No se como hacer esto...

Ok, ahí va el código:
1) Este es el código de la página1.php (desde donde llamo al archivo principal).

Pagina1.php
Cita:
<?php
$sitios_por_pagina=5;
$minreg=1;
$maxreg=50;
$min=2001;
$max=2050;
include_once("principal.php");
?>
Y esto lo incluyo en el archivo principal. Se llama con un include desde cualquier pagina (pagina1.php, pagina2.php, pagina3.php, etc.)

ARCHIVO principal.php
Cita:
<?php
$query = "SELECT count(id) AS Total from rank WHERE id>$minreg-1 AND id<$maxreg+1";
$row2=mysql_fetch_assoc(mysql_query($query));
$total_records = $row2['Total'];
$records_per_page = $sitios_por_pagina;
$total_pages = ceil($total_records / $records_per_page);
$page = intval($_GET["p"]);
if ($page < 1 || $page > $total_pages) $page = 1;
$offset = ($page - 1) * $records_per_page;
$limit = " LIMIT $offset, $records_per_page";
$query = "SELECT * from rank WHERE id BETWEEN $min and $max ORDER BY votos DESC, nombre ASC $limit";
$resultado = mysql_query($query);
while ($row = mysql_fetch_assoc($resultado))
{
....
.....
(ACA IMPRIME LOS REGISTROS QUE SACO Y LOS PAGINA)
  #4 (permalink)  
Antiguo 10/12/2009, 17:43
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No se como hacer esto...

Y VUN, me ayudas?
  #5 (permalink)  
Antiguo 10/12/2009, 18:00
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: No se como hacer esto...

Ok pregunta, para que delimitas dos veces la cantidad de registros?

Si dices que quieres desde el 2001 hasta el 2050 ya son 50 registrso, para que poner otro conteo desde 1 a 50?

Y a ver si entendi bien, tu lo que quieres es que si de esos 50 solo 20 registros estan llenos en los 6 campos, que de una te diga que el $total_records sea 20 en vez de 50?
  #6 (permalink)  
Antiguo 10/12/2009, 18:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No se como hacer esto...

El primer $query los cuenta PARA PAGINARLOS, en ese caso puedo poner simplemente
Cita:
$query = "SELECT count(id) AS Total from rank WHERE LENGTH(nombre)>(0)";
El segundo $query me tira con un bucle los registros, con la condición de que sean entre un valor minimo ($min) y uno maximo ($max) porque sino me tira los registros de toda la base de datos (y solo quiero un sector de ella, dependiendo de la página).
Y ya que estamos en el tema (otra preguntita), cuando haces un include() al archivo principal, este archivo sabe de donde viene el include (si de la pagina 1.php, 2.php, etc?)
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 09:19.