Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Paginar 2 consultas

Estas en el tema de Paginar 2 consultas en el foro de PHP en Foros del Web. Hola como estan tengo una duda, como puedo hacer para paginar 2 consultas a la base de datos es decir yo hago las 2 consultas ...
  #1 (permalink)  
Antiguo 23/05/2013, 13:51
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 3 meses
Puntos: 2
Paginar 2 consultas

Hola como estan tengo una duda, como puedo hacer para paginar 2 consultas a la base de datos es decir yo hago las 2 consultas y en la pagina muestro valores de cada una de ellas lo que yo quiero es que pa paginacion se haga cuando los 2 juegos de registro me sumen 10. Me ayudan por favor
  #2 (permalink)  
Antiguo 23/05/2013, 14:28
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Paginar 2 consultas

La paginación no es problema, consulta cualquiera artículo en este foro, lo que tienes que lograr es "sumar" las dos consultas. Postea el código, salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 23/05/2013, 14:35
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Paginar 2 consultas

aqui esta el codigo por si ayuda a que me ayuden
Las consultas se llaman principal y consulpremium
Código PHP:
Ver original
  1. $currentPage = $_SERVER["PHP_SELF"];
  2.  
  3. $maxRows_principal = 10;
  4. $pageNum_principal = 0;
  5. if (isset($_GET['pageNum_principal'])) {
  6.   $pageNum_principal = $_GET['pageNum_principal'];
  7. }
  8. $startRow_principal = $pageNum_principal * $maxRows_principal;
  9.  
  10. $varPrincipal_principal = "0";
  11. if (isset($_GET["cat"])) {
  12.   $varPrincipal_principal = $_GET["cat"];
  13. }
  14. mysql_select_db($database_clasi, $clasi);
  15. $query_principal = sprintf("SELECT * FROM principal INNER JOIN categorias ON principal.id_categoria=categorias.id_categoria  WHERE categorias.id_categoria=%s  AND principal.premium=0 UNION  SELECT * FROM principal INNER JOIN categorias ON principal.id_categoria=categorias.id_categoria  WHERE categorias.IdPadre=%s  AND principal.premium=0 ORDER BY id_principal DESC  ", GetSQLValueString($varPrincipal_principal, "int"),GetSQLValueString($varPrincipal_principal, "int"));
  16. $query_limit_principal = sprintf("%s LIMIT %d, %d", $query_principal, $startRow_principal, $maxRows_principal);
  17. $principal = mysql_query($query_limit_principal, $clasi) or die(mysql_error());
  18. $row_principal = mysql_fetch_assoc($principal);
  19.  
  20. if (isset($_GET['totalRows_principal'])) {
  21.   $totalRows_principal = $_GET['totalRows_principal'];
  22. } else {
  23.   $all_principal = mysql_query($query_principal);
  24.   $totalRows_principal = mysql_num_rows($all_principal);
  25. }
  26. $totalPages_principal = ceil($totalRows_principal/$maxRows_principal)-1;
  27.  
  28.  
  29.  
  30.  
  31. $maxRows_ConsulPremium = 10;
  32. $pageNum_ConsulPremium = 0;
  33. if (isset($_GET['pageNum_ConsulPremium'])) {
  34.   $pageNum_ConsulPremium = $_GET['pageNum_ConsulPremium'];
  35. }
  36. $startRow_ConsulPremium = $pageNum_ConsulPremium * $maxRows_ConsulPremium;
  37.  
  38. $varPremium_ConsulPremium = "0";
  39. if (isset($_GET["cat"])) {
  40.   $varPremium_ConsulPremium = $_GET["cat"];
  41. }
  42. mysql_select_db($database_clasi, $clasi);
  43. $query_ConsulPremium = sprintf("SELECT * FROM principal INNER JOIN categorias ON (principal.id_categoria=categorias.id_categoria)  WHERE categorias.id_categoria=%s AND premium=1 UNION SELECT * FROM principal INNER JOIN categorias ON (principal.id_categoria=categorias.id_categoria) WHERE categorias.IdPadre=%s AND premium=1 ORDER BY id_principal DESC  ", GetSQLValueString($varPremium_ConsulPremium, "int"),GetSQLValueString($varPremium_ConsulPremium, "int"));
  44. $query_limit_ConsulPremium = sprintf("%s LIMIT %d, %d", $query_ConsulPremium, $startRow_ConsulPremium, $maxRows_ConsulPremium);
  45. $ConsulPremium = mysql_query($query_limit_ConsulPremium, $clasi) or die(mysql_error());
  46. $row_ConsulPremium = mysql_fetch_assoc($ConsulPremium);
  47.  
  48. if (isset($_GET['totalRows_ConsulPremium'])) {
  49.   $totalRows_ConsulPremium = $_GET['totalRows_ConsulPremium'];
  50. } else {
  51.   $all_ConsulPremium = mysql_query($query_ConsulPremium);
  52.   $totalRows_ConsulPremium = mysql_num_rows($all_ConsulPremium);
  53. }
  54. $totalPages_ConsulPremium = ceil($totalRows_ConsulPremium/$maxRows_ConsulPremium)-1;
  55.  
  56. $queryString_principal = "";
  57. if (!empty($_SERVER['QUERY_STRING'])) {
  58.   $params = explode("&", $_SERVER['QUERY_STRING']);
  59.   $newParams = array();
  60.   foreach ($params as $param) {
  61.     if (stristr($param, "pageNum_principal") == false &&
  62.         stristr($param, "totalRows_principal") == false) {
  63.       array_push($newParams, $param);
  64.     }
  65.   }
  66.   if (count($newParams) != 0) {
  67.     $queryString_principal = "&" . htmlentities(implode("&", $newParams));
  68.   }
  69. }
  70. $queryString_principal = sprintf("&totalRows_principal=%d%s", $totalRows_principal, $queryString_principal);
  #4 (permalink)  
Antiguo 23/05/2013, 14:39
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Paginar 2 consultas

Consulta la sintaxis de UNION SELECT para obtener los dos resultados juntos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 23/05/2013, 19:01
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Paginar 2 consultas

me podrias ayudar un poquitin en la sintaxis de la consulta es que nose cuales unir si se que se hace por UNION pero no logro hacerlo
  #6 (permalink)  
Antiguo 24/05/2013, 01:34
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Paginar 2 consultas

Te quedaría una cosa así, pero tendrás que probar un poco, no tengo accesso a tu DB:

Código MySQL:
Ver original
  1. FROM principal
  2.   INNER JOIN categorias
  3.     ON principal.id_categoria = categorias.id_categoria
  4. WHERE categorias.id_categoria =  % s
  5.     AND principal.premium = 0 UNION SELECT *
  6.                                     FROM principal
  7.                                       INNER JOIN categorias
  8.                                         ON principal.id_categoria = categorias.id_categoria
  9.                                     WHERE categorias.IdPadre =  % s
  10.                                         AND principal.premium = 0
  11. ORDER BY id_principal DESC
  12.                                  FROM principal
  13.                                    INNER JOIN categorias
  14.                                      ON (principal.id_categoria = categorias.id_categoria)
  15.                                  WHERE categorias.id_categoria =  % s
  16.                                      AND premium = 1 UNION SELECT *
  17.                                                            FROM principal
  18.                                                              INNER JOIN categorias
  19.                                                                ON (principal.id_categoria = categorias.id_categoria)
  20.                                                            WHERE categorias.IdPadre =  % s
  21.                                                                AND premium = 1
  22.                                  ORDER BY id_principal DESC
__________________
Fere libenter homines, id quod volunt, credunt.
  #7 (permalink)  
Antiguo 24/05/2013, 10:22
 
Fecha de Ingreso: diciembre-2012
Mensajes: 178
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Paginar 2 consultas

hola, osea que tengo que eliminar mis consultas tal cual estan y hacer una nueva combinandolas?

Etiquetas: ajax, dreamweaver, mysql, spry
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 04:30.