Comunidad de diseño web y desarrollo en internet online

Duda con MySQL

Citar            
MensajeEscrito el 22 Dic 2008 05:33 pm
hola si, soy skn0t ..
vengo a presentarles una duda que a suposición debe ser algo simple pero que mi cabeza no puede resolver .. supongo que algunos de ustedes deben saber

Bueno la duda es la siguiente .. estoy programando un sitio web que va a poseer numerosos contenidos .. todo se va a regir por medio de Bases de Datos MySQL .. ahora va a haber una parte que va a ser digamos como un BLOG de noticias .. lo que necesito es que en la homepage muestre las últimas 5 noticias [por ejemplo] y que mas abajo en el footer se agrupen las páginas con las otras noticias [osea el clásico "<< Previous 1 2 3 4 5 6 7 8 9 10 Next >>"] a eso me refiero entonces me vendría bien que me dijesen o por lo menos me ORIENTEN de como más o menos sería la consulta MySQL

Gracias de antemano .

Por skn0t

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Dic 2008 03:56 pm
Skn0t, lo primero que te aconcejaria es leer algun manual de MySQL.

Lo segundo es que necesitas 2 consultas, una para cada seccion, la primer consulta seria algo asi:

Código :

SELEC 'campos' FROM 'tabla' ORDER BY 'campo' DESC LIMIT 5


La segunda consulta es algo asi:

Código :

SELEC COUNT('campo') FROM 'tabla'

Con esto tendras el total de noticias, lo que deberas hacer luego es una division y utilizar la funcion ceil para que te redonde el valor de esa division; con eso sabras la cantidad de paginas que deberias hacer.

Por Dientuki

Claber

2021 de clabLevel

11 tutoriales
1 articulo

Genero:Masculino   Héroes

Front-end Ninja

firefox
Citar            
MensajeEscrito el 23 Dic 2008 06:42 pm

Por chug0

Claber

136 de clabLevel



 

Perú

firefox
Citar            
MensajeEscrito el 23 Dic 2008 06:45 pm
Todo lo que sea * en consultas es solo para fines educativos; realizarlo en la practica es algo totalmente estupido. Es por eso que nunca lo utilizo.

Por Dientuki

Claber

2021 de clabLevel

11 tutoriales
1 articulo

Genero:Masculino   Héroes

Front-end Ninja

firefox
Citar            
MensajeEscrito el 24 Dic 2008 12:34 am
pos si interesante punto de vista ya q si colocamos * recargaremos la base de datos leyendo todos los campos de la tabla q si leemos los campos necesarios saludos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 24 Dic 2008 12:55 am
gracias a todos por las respuestas la primera parte que necesitaba de mostrar las ultimas noticias de primero lo conseguí y me va de maravilla .. ahora necesito eso de agrupar las noticias en otras paginas .. masomenos analizando la respuesta de Dientuki .. la cuál no me quedo muy clara .. digo la de la 2da consulta la primera si .. xD

hise un code masomenos asi ..

<?php
/* Requerimos el archivo de la Configuración */
require_once('db.php');
$consulta="SELECT COUNT(id) FROM newz";
$resultado=mysql_query($consulta, $conexion) or die(mysql_error());
echo $resultado;
mysql_close($conexion);
?>

como lo ven es sumamente simple, era solo para ver que me tiraba .. y me tiró algo como esto "Resource id #3", igual seguí .. hise una division entre 6 por ejemplo y siempre me dá como resultado "0.5" [dá siempre porque le segui agregando mas datos a la tabla y nunca cambiaba ..] .. y estube leyendo lo de la funcion ceil .. i bueno es para redondear numeros .. la cuál quedo algo asi " echo ceil($resultado/6); " y siempre tira 1 .. i bueno .. me gustaria aver si me pueden dar una respuesta mas clara .. igual agradesco todas las respuestas anteriores

un saludo..

Por skn0t

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Dic 2008 01:35 am
Como dice chug0 es como deberías hacerlo, un ejemplo:

Código PHP :

$pagina = 1;
$cantidadPorPagina = 10;


$query = "SELECT SQL_CALC_FOUND_ROWS * FROM `Tabla` LIMIT " . (($pagina-1)*$cantidadPorPagina) . ","  . $cantidadPorPagina;

$sqlTotal = "SELECT FOUND_ROWS();"

//conexion

$registros = mysql_query($query);
$total = mysql_query($sqlTotal);

while ( $row = mysql_fetch_array($registros))
{
       echo "<pre>";
       print_r($row);
       echo "</pre>";
}

echo mysql_result($total, 0) . " Total de registros";


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Dic 2008 02:36 am
Gracias por tu respuesta Maikel
ese code lo testié y va muy bien lo unico es que .. si dejamos la variable "$pagina = 1;" en la pagina 1 va a mostrar las primeras noticias .. osea las de Id: 1, 2, 3, 4, 5 y 6 [osea las noticias mas viejas] y en la pagina 3 mostraria por ejemplo las noticia de Id: 13, 14, 15 [por ejemplo] y esas vendrian siendo las noticias mas actualizadas osea.. es alrevés¿? .. nose que abria que cambiar .. la verdad agradesco tu respuesta
no se si me expliqué?
un saludo..

Por skn0t

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Dic 2008 02:42 am
antes de limit pon DESC

Por chug0

Claber

136 de clabLevel



 

Perú

firefox
Citar            
MensajeEscrito el 24 Dic 2008 02:48 am
el code quedo algo asi con el desc

Código :

<?php
/* Requerimos el archivo de la Configuración */
require_once('db.php');
$pagina = 1; 
$cantidadPorPagina = 6; 
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM newz LIMIT " . (($pagina-1)*$cantidadPorPagina) . ","  . $cantidadPorPagina; 
$sqlTotal = "SELECT FOUND_ROWS();";
$registros = mysql_query($query);
$total = mysql_query($sqlTotal);
while ($row = mysql_fetch_array($registros)) 
{ 
       echo "<pre>"; 
echo "Id: ".$row['id']." - ".$row['fecha']." - ".$row['titulo']."<br/>".$row['noticia']."</br></br>";
       echo "</pre>"; 
} 
echo mysql_result($total, 0) . " Total de registros";
mysql_close($conexion);
?>


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/xxxx.com/xxx.php on line 10

;(

Por skn0t

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Dic 2008 02:45 pm

Código :

$query = "SELECT SQL_CALC_FOUND_ROWS * FROM newz ORDER BY id DESC LIMIT " . (($pagina-1)*$cantidadPorPagina) . ","  . $cantidadPorPagina; 

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Dic 2008 04:36 pm
flashié el code es este

Código :

<?php
/* Requerimos el archivo de la Configuración */
require_once('db.php');
$pagina = 1; 
$cantidadPorPagina = 6; 
$query = "SELECT SQL_CALC_FOUND_ROWS * FROM newz DESC LIMIT " . (($pagina-1)*$cantidadPorPagina) . ","  . $cantidadPorPagina; 
$sqlTotal = "SELECT FOUND_ROWS();";
$registros = mysql_query($query);
$total = mysql_query($sqlTotal);
while ($row = mysql_fetch_array($registros)) 
{ 
       echo "<pre>"; 
echo "Id: ".$row['id']." - ".$row['fecha']." - ".$row['titulo']."<br/>".$row['noticia']."</br></br>";
       echo "</pre>"; 
} 
echo mysql_result($total, 0) . " Total de registros";
mysql_close($conexion);
?>


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/xxxx.com/xxxx.php on line 10

Por skn0t

3 de clabLevel



 

firefox

 

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