[MySQL/PHP] Query voor laatste 5 postings

Pagina: 1
Acties:

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Ik ben lekker aan het klussen met PHP en MySQL en heb een soort foto-reactie-systeempje gemaakt.

Nu wil ik de laatste 5 reacties uit de database halen. Dit kan door de volgende Query:
SELECT comment_id, photo_id, add_date, text FROM comment WHERE 1 ORDER BY add_date DESC LIMIT 5

Maar nu wil ik een stapje verder. Ik wil de laatste 5 reacties, maar alleen van verschillende foto's. :)

Ik heb het eea geprobeert maar ik krijg dit helaas niet op die manier uit de database. :(

Weet iemand hier the trick? Of is dit niet mogelijk dmv 1 query :?

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 07-09 20:07

HenkS

Da_king alias HenkS

kijk eens in de manual hoe limit werkt!

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Op woensdag 15 mei 2002 15:46 schreef HenkS het volgende:
kijk eens in de manual hoe limit werkt!
Beetje flauwe reactie. Ik heb in de manual gekeken en daar staat [LIMIT [offset,] rows], maar daar heb ik in deze weinig aan. Ik krijg nl. wel de 5 laatste reacties, maar daar kunnen reacties tussen zitten met hetzeldes photo_id.
En de bedoeling is dat ik de 5 laatste reacties krijg waarbij foto_id in geen van de gevallen dezelfde waarde heeft.

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 07-09 20:36

Super_ik

haklust!

probeer eens iets met GROUP BY foto ofzo :?
en waarom gebruik je WHERE 1 :? da dient toch nergens voor ofwel :?

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Op woensdag 15 mei 2002 15:53 schreef Super_ik het volgende:
probeer eens iets met GROUP BY foto ofzo :?
en waarom gebruik je WHERE 1 :? da dient toch nergens voor ofwel :?
Die WHERE 1 slaat idd nergens op. Doet phpMyAdmin er bij.

Ik heb nu de volgende query geprobeerd:
SELECT * FROM comment GROUP BY photo_id ORDER BY add_date DESC LIMIT 5

Deze geeft 5 record terug, waarvan er geen enkele een photo_id hetzelfde is, maar het zijn niet de nieuwste postings. De ORDER BY add_date doet ie pas nadat ie de records heeft geselecteerd ofzo. :(

Verwijderd

Volgens mij is "select distinct" sneller dan groupby

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Op woensdag 15 mei 2002 16:14 schreef iskander het volgende:
Volgens mij is "select distinct" sneller dan groupby
Dan zou de query het volgende worden:
SELECT DISTINCT(photo_id),comment_id, add_date,text FROM `comment` ORDER BY add_date DESC LIMIT 5

Nu geeft ie echter toch nog records met dezelfde photo_id terug :'(

Verwijderd

SELECT * FROM comment GROUP BY photo_id ORDER BY add_date DESC LIMIT 0,5

probeer het zo eens :)

  • Bolk
  • Registratie: Februari 2001
  • Niet online

Bolk

Change the equation.

Op woensdag 15 mei 2002 16:01 schreef Sjab-X het volgende:

[..]

Die WHERE 1 slaat idd nergens op. Doet phpMyAdmin er bij.

Ik heb nu de volgende query geprobeerd:
SELECT * FROM comment GROUP BY photo_id ORDER BY add_date DESC LIMIT 5

Deze geeft 5 record terug, waarvan er geen enkele een photo_id hetzelfde is, maar het zijn niet de nieuwste postings. De ORDER BY add_date doet ie pas nadat ie de records heeft geselecteerd ofzo. :(
SELECT DISTINCT * FROM comment ORDER BY add_date DESC LIMIT 5

Als photo_id primary key is :?

Ik bespeur hier een zekere mate van onethische logica.


  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Helaas bieden geen van bovenstaande Querys de oplossing.
Ik heb het nu als volgt aangepakt:
SELECT MAX(add_date),photo_id FROM `comment` GROUP BY `photo_id` ORDER BY `MAX(add_date)` DESC LIMIT 5

En dan voor die 5 photo_id's een nieuwe query.

Misschien omslachtig, maar het werkt nu wel :)
Pagina: 1