Avatar billede Slettet bruger
04. november 2010 - 13:39 Der er 5 kommentarer og
1 løsning

Udtrække sidste 10 poster og vise random

Hej,

Jeg ønsker at lave en side, der trækker de sidste 10 nyheder ud af min database og så viser en tilfældig nyhed blandt de 10. Jeg vil så indsætte et javascript til at reloade siden om x antal sekunder. MEN - og her bliver det vel tricky - hvordan undgår jeg så, at den viser samme nyhed to gange i træk (ved tilfældighed)?
Avatar billede repox Seniormester
04. november 2010 - 13:46 #1
Det er i sandheden det smukke ved tilfældigheder - du kan ikke sikre dig at tilfældet vil dig det samme to gange i træk ;) Ellers ville det jo ikke være tilfældigt, vel?

Anyhuu...
[pre][div]<?php

  $sql = "SELECT * FROM table ORDER BY date DESC LIMIT 10";
  $res = mysql_query($sql);

  while( $row = mysql_fetch_assoc($res) )
    $results[] = $row;

  shuffle($results);
  var_dump($results[0]); // den tilfældige

?>
Avatar billede danco Nybegynder
04. november 2010 - 16:00 #2
En måde at sikre dig på at der ikke kommer den samme nyhed ud 2 gange i træk ved "tilfældigheder" kunne være at gemme den sidste der er trukket i en variabel. Hvis den "nye" tilfældige nyhed er den samme så trækker du en ny.

Som repox siger, så er det dog ikke helt tilfældigt.
Avatar billede Slettet bruger
05. november 2010 - 09:45 #3
Hej,

Har tænkt i de baner, danco, men efter at have overvejet det, så tror jeg ikke det betyder så meget i første omgang (om der kommer to ens i træk).

Hvad med flg.:
ORDER BY RAND() LIMIT 10

- kan man smide endnu en "ORDER BY" ind på en el. anden måde, altså eks. "ORDER BY post_date desc" så den kun tager de sidste nye...?
Avatar billede engberg Juniormester
08. november 2010 - 23:04 #4
Du kan bare smide en "Id" ind i din db-tabel, som har en auto_increment og så bruge ORDER BY Id DESC LIMIT 10
Avatar billede repox Seniormester
18. november 2010 - 09:54 #5
omalley, er du kommet videre?
Avatar billede Slettet bruger
19. november 2010 - 10:01 #6
Hej, jeg lavede en anden løsning. Svar gerne - så deler jeg pointene ml. jer som tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester