Kleine uitleg over de tabel die ik heb in mijn db, naam is 'autos'. In deze tabel staat een kolom met de naam hits.
Stel er staan 400 rijen in.
50 van deze rijen hebben wel eens een hit gehad, en die velden bevatten een waarde van varierend van 1 tot 50, ik noem maar wat.
Als ik nou de rijen ga laten zien met en statement als:
.. dan worden ze geselecteerd van hoog naar laag. Alleen probleem is dan dat hij de rijen die gelijk zijn (waar hits dus == 0 is) dan gaat laten zien aan de hand van de datum van toevoeging omdat ze niet van elkaar verschillen wat de waarde betreft.
Hoe kan ik nu de rijen laten zien dat de rij met de meeste hits bovenaan staat en dan afloopt, en dat alle rijen die hits==0 hebben gewoon random worden weergeven? Dat lukt op zich wel, maar dan wil ik dat die randomizing wel elke keer hetzelfde is, zodat elke gebruiker dezelfde random te zien krijgt!
Ik hoop dat het duidelijk is. Ik wist niet goed hoe ik het uit moest leggen...
Ik weet van het bestaan van rand() af, maar zeker niet hoe ik dat moet gebruiken in dit geval.
De oplossing die ik zelf al bedacht heb is iets als:
..alleen als ik dan de pagina ververs, dan is er een heel andere randomize, en die moet nou juist steeds hetzelfde zijn.
Stel er staan 400 rijen in.
50 van deze rijen hebben wel eens een hit gehad, en die velden bevatten een waarde van varierend van 1 tot 50, ik noem maar wat.
Als ik nou de rijen ga laten zien met en statement als:
PHP:
1
| $query = "SELECT * FROM autos ORDER BY hits DESC"; |
.. dan worden ze geselecteerd van hoog naar laag. Alleen probleem is dan dat hij de rijen die gelijk zijn (waar hits dus == 0 is) dan gaat laten zien aan de hand van de datum van toevoeging omdat ze niet van elkaar verschillen wat de waarde betreft.
Hoe kan ik nu de rijen laten zien dat de rij met de meeste hits bovenaan staat en dan afloopt, en dat alle rijen die hits==0 hebben gewoon random worden weergeven? Dat lukt op zich wel, maar dan wil ik dat die randomizing wel elke keer hetzelfde is, zodat elke gebruiker dezelfde random te zien krijgt!
Ik hoop dat het duidelijk is. Ik wist niet goed hoe ik het uit moest leggen...
Ik weet van het bestaan van rand() af, maar zeker niet hoe ik dat moet gebruiken in dit geval.
De oplossing die ik zelf al bedacht heb is iets als:
PHP:
1
2
3
| $query = "SELECT * FROM autos WHERE hits > 0 ORDER BY hits DESC"; // en dan daarna: $query = "SELECT * FROM autos WHERE hits = 0 ORDER BY rand()"; |
..alleen als ik dan de pagina ververs, dan is er een heel andere randomize, en die moet nou juist steeds hetzelfde zijn.
[ Voor 5% gewijzigd door Verwijderd op 12-06-2003 15:45 ]