login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ORDER BY RAND() (Opgelost)

Offline prienstra - 07/10/2009 12:16
Avatar van prienstraMySQL interesse Beste mensen, ik laat 4 willekeurige foto's zien volgens ORDER BY RAND(), nu komt het voor dat ik wel eens 2 (of 3 of 4) dezelfde krijg. Bestaat er een toevoeging dat ik elke foto maar 1 keer krijg?

8 antwoorden

Gesponsorde links
Offline Ibrahim - 07/10/2009 12:31 (laatste wijziging 07/10/2009 12:38)
Avatar van Ibrahim PHP expert Je kunt werken met een sessie. Hiermee onthoud je welke foto's al geweest zijn. Zodra alle foto's geweest zijn, dan reset je de sessie en begin je opnieuw.
Offline prienstra - 07/10/2009 12:44
Avatar van prienstra MySQL interesse De foto's worden eenmalig geladen, ze staan naast elkaar op 1 pagina. De volgende keer dat de pagina geladen wordt, mogen ze gerust weer getoond worden.
Offline Prostarter - 07/10/2009 12:46
Avatar van Prostarter Nieuw lid Dan zou je een sessie aan moeten maken, met een cookie eventueel. Dat zodra er een refresh in komt of weer opnieuw op de pagina komt dat de sessie wordt verwijderd en opnieuw wordt aangemaakt.
Offline jaronneke - 07/10/2009 13:02 (laatste wijziging 07/10/2009 13:03)
Avatar van jaronneke MySQL interesse Precies, een ARRAY(); in een $_SESSION[]; zetten .. en dan kijken met IN_ARRAY(); of de waarde voor komt.
Offline prienstra - 07/10/2009 13:56
Avatar van prienstra MySQL interesse Dat is jammer dat ik met eens sessie moet werken.

Wellicht voor de duidelijkheid, het gaat om de 4 hotels aan de rechterzijde op http://tinyurl.com/yabvns8 soms staan er hotels dubbel op.
Offline mike87 - 07/10/2009 15:13
Avatar van mike87 Nieuw lid Volgens mij snappen jullie zijn vraag niet helemaal.

Hij krijgt in 1 query dezelfde resultaten. Dan bij een refresh dezelfde resultaten verschijnen als de keer daarvoor maakt niets uit zegt ie.

Al geprobeerd met de functie DISTINCT te werken?
Offline prienstra - 07/10/2009 15:47 (laatste wijziging 07/10/2009 15:49)
Avatar van prienstra MySQL interesse
mike87 schreef:
Volgens mij snappen jullie zijn vraag niet helemaal.

Hij krijgt in 1 query dezelfde resultaten. Dan bij een refresh dezelfde resultaten verschijnen als de keer daarvoor maakt niets uit zegt ie.

Al geprobeerd met de functie DISTINCT te werken?


Volgens mij werkt dit prima, is dit zo juist?:

  1. $sql = mysql_query("SELECT DISTINCT hotel.naam, plaatsen.plaats, hotel.intro, hotel.hotel_id FROM hotel, plaatsen, beschikbaarheid, kamer
  2. WHERE hotel.plaats_id = plaatsen.plaats_id AND kamer.hotel_id = hotel.hotel_id AND beschikbaarheid.kamer_id = kamer.kamer_id AND beschikbaarheid.beschikbaar
  3.  
  4. > 0 AND beschikbaarheid.datum >= NOW() ORDER BY RAND() LIMIT 4;");
Offline Richard - 08/10/2009 09:27
Avatar van Richard Crew algemeen Netjes formatten, en natuurlijk expliciete joins gebruiken is een stukje beter ;)

  1. $sql = mysql_query("
  2. SELECT DISTINCT hotel.naam, plaatsen.plaats, hotel.intro, hotel.hotel_id
  3. FROM hotel
  4. INNER JOIN plaatsen
  5. USING(plaats_id)
  6. INNER JOIN kamer
  7. USING(hotel_id)
  8. INNER JOIN beschikbaarheid
  9. USING(kamer_id)
  10. WHERE beschikbaarheid.beschikbaar
  11. AND beschikbaarheid.datum >= NOW()
  12. ORDER BY RAND()
  13. LIMIT 4
  14. ");
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s