Foros del Web » Programando para Internet » PHP »

10 ultimos resultados

Estas en el tema de 10 ultimos resultados en el foro de PHP en Foros del Web. Como puedo mostrar las 10 ultimas noticias que he insertado en la base de datos sino puedo usar el campo data porque a lo mejor ...
  #1 (permalink)  
Antiguo 01/03/2005, 05:48
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
10 ultimos resultados

Como puedo mostrar las 10 ultimas noticias que he insertado en la base de datos sino puedo usar el campo data porque a lo mejor en un mismo dia se agregan 30 noticias iguales.

Hasta ahora lo ponia asi


$sql="Select * FROM noticias";
$resultG=mysql_query($sql) or die(mysql_error()."<br>$sql");

$contador=0;

while($row=mysql_fetch_assoc($resultG)){
if($contador<10)
{
echo "
<div class='espacio'>
</div>
<div class='content'>


<div class='titol'>
<p class='titolno'>$row[titol]</p>
</div>

<div class='noticia'>
<p class='noticia'>$row[text1] $row[text2] $row[foto1] $row[foto2] <br /> <br />$row[data]</p>
</div>

</div>

";
}
else
{ echo "puta";}
$contador=$contador+1;
}


pero asi me muestra los 10 primeros resultados, y estos son los mas antiguos... hay alguna forma de que me muestre los 10 mas nuevos en lugar de los 10 mas antiguos?

Última edición por klareNs; 01/03/2005 a las 05:51
  #2 (permalink)  
Antiguo 01/03/2005, 05:58
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
prueba con:

$sql="Select * FROM noticias ORDER BY DESC";
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 01/03/2005, 06:00
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Creo que la solución sería dotar a la tabla noticias de un campo 'fecha' y ordenarlo por él tal y como te dicen en el mensaje anterior.

$sql="SELECT * FROM noticias ORDER BY fecha DESC";
  #4 (permalink)  
Antiguo 01/03/2005, 06:05
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
gracias a todos he provado lo del JAM y me daba un error de sql, he buscado en un manual y me ha salido lo que dice el KODEN, pero como no puedo hacerlo por fecha porque solo inserto el dia-mes-año y tengo a lo mejor 30 noticias del mismo dia, lo he ordenado por el campo id, que es autoincrementable...

$sql="SELECT * FROM noticias ORDER BY id DESC";


gracias a todos.
  #5 (permalink)  
Antiguo 01/03/2005, 06:11
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
supongo cuando dijo que no podía utilizar "el campo data" quizó referirse a un campo DATE... osease.. la fecha..... oyes... pero no veo que diferencies tus noticias... además si vaz solo a mostrar los útilmos 10 resultados es mejor limitar la consulta a ése número de resultados para no gastar recursos... y tu bucle quedara, creo yo, más simple...
.... además... si tienes 30 noticias iguales tendrían el mismo titulo???... puedes consultar las noticias con titulo diferente desde MySQL con la función DISTINCT(campo)...

... ta ayudo tantito:
http://www.forosdelweb.com/search.php?searchid=238804
claro... solo hago la observación. La mejor de las suertes!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 01/03/2005, 08:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Deberías usar la sentencia LIMIT .. para "limitar" los registros que te entregue la consulta a sólo 10, ordenados de mayor a menor para ver los 10 últimos ingresados por ID (supongo que usaras un campo Autonumérico y único? ..).

$sql="SELECT * FROM noticias ORDER BY id DESC LIMIT 10";

Si tienes algún mensaje de error sobre SQL ..debes indicarlo aquí .. tal vez el nombre de tus campos no sea ese .. adaptalo.

Sobre el tema que que tus noticias puedan ser "iguales" .. deberías definir bajo que criterio vas a identificar tu o lo haces como son "iguales" (por título? .. o por qué factor?) .. de esa forma se podría aplicar un DISTINCT al campo que corresponda.

Un saludo,
  #7 (permalink)  
Antiguo 01/03/2005, 09:33
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 14 años, 10 meses
Puntos: 1
hola, lo que yo te sugiero es que agregues un campo fecha como alguien por aqui te dice, para que complicarse tanto.
Código PHP:
ALTER TABLE noticias ADD COLUMN(
fecha datetime NOT NULL default '0000-00-00 00:00:00'
); 
y luego cuando quieras mostrar las noticias solo lo llamas por orden fecha.
Código PHP:

<?
$resultar 
= @ mysql_query("SELECT * FROM noticias ORDER BY fecha DESC  LIMIT 10");
while (
$rowmysql_fetch_array($resultar)) {
      
$id $row["id"];
    
$titol $row["titol"];
    
$text1 $row["text1"];
    
$text2 $row["text2"];
    
$foto1 $row["foto1"];
    
$foto2 $row["foto2"];
    
$data $row["data"];
    
$fecha $row["fecha"];

$date_ok1=explode("-",$fecha);
$date_ok2=explode(" ",$date_ok1[2]);
$fecha1=$date_ok2[0]."/".$date_ok1[1]."/".$date_ok1[0]; //fecha1 dd/mm/aaaa   
$date_ok3=explode(":",$date_ok2[1]);
$hora=$date_ok3[0].":".$date_ok3[1]; //hora hh:mm  
?>
        
<p class='titolno'><?=$titol?> <?=$fecha1?><?=$hora?></p>
</div>

<div class='noticia'>
<p class='noticia'><?=$text1?> <?=$text2?> <?=$foto1?> <?=$foto2?> <br /> <br />
<?=$data?></p>
<? ?>
haber si te funciona,
  #8 (permalink)  
Antiguo 07/03/2005, 05:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
el problema que tenia con el campo fecha es que al ingresar la fecha en la base de datos no me la ingresaba bien. usease me quedaba todo 0000-00-00 aqui os muestro el codigo:

$data = date("Y/m/d");


$sql="INSERT INTO noticias (id,titol,text1,text2,foto1,foto2,data,id_usu) VALUES ('', '$titulo', '$texto1', '','','','$data','$id_usu')";

$resultado=mysql_query($sql) or die (mysql_error());


no se si ago algo mal al ingresar la fecha...aunque supongo que si, porque sino me lo haria bien...jeje

A lo mejor el $data dentro del insert tiene que ir sin comillas?

Lo del limit lo voy a probar, asi no tengo que poner el contador en el bucle y es mas facil y rapido...

Última edición por klareNs; 07/03/2005 a las 05:24
  #9 (permalink)  
Antiguo 07/03/2005, 05:39
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
si te fijas el separador que has utilizado es "/" mientras que la BD espera un "-", en cuanto al órden que propusiste por `id`no creo que seal el mejor, ya que podrías insertar una noticia del día anterior o de hace varios y aparecería en una posición incorrecta, usa el campo de la fecha como te han sugerido y aparte el `id` para mostrar el orden de inseción ;)

Código PHP:
mysql_query("SELECT * FROM noticias ORDER BY data DESC, id DESC  LIMIT 10"); 
saludos!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #10 (permalink)  
Antiguo 07/03/2005, 05:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
que tengo que poner
$data=date("y-m-d h-m-s");
si quiero usar el campo en sql comodatetime?
  #11 (permalink)  
Antiguo 07/03/2005, 05:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
oks... gracias por decirme lo del separador, yo pensba que eso formaba parte del codigo php
Ahora ya funciona bien y lo he ordenado por datetime y por id ..

Gracias a todos
  #12 (permalink)  
Antiguo 07/03/2005, 05:53
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
creo que sería algo asíp

$data=date("Y-m-d G:i:j");

aquí tienes todas las opciones http://www.php.net/manual/es/function.date.php
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #13 (permalink)  
Antiguo 07/03/2005, 06:01
 
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 12 años, 10 meses
Puntos: 0
Oks es como tu dices X3mdesign, gracias, pero tengo otra duda sobre esto, pues me pone una hora menos de la que es en realidad, es problema de la BBDD o del servidor php que le he de configurar en que zona horaria estoy, y si es asi como configuro la zona horaria? o como lo hago para que inserten la noticia desde el continente que sea siempre le ponga la fecha y hora de aqui?

Gracias
  #14 (permalink)  
Antiguo 07/03/2005, 06:10
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
no sé cómo se haría de una forma técnica... pero se me ocurre que cada admin tenga una spreferencia y una de ellas sea la de indicar su GMT... como en los foros de PHPBB2 y entonces aplicarle a su hora actual esa configuración....

$hora=date(G)+$GMT_user;

$data=date("Y-m-d $hora:i:j");
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
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 07:39.