Aantal rijen tellen, en dan weer opnieuw vooraan tellen!
Ik lees zo "$aantal = mysql_num_rows($results);" het aantal uit het database. Nu heb ik een extra kolom 'totaalnu' toegevoegd. Hier wordt bij elke nieuwe rij +1 bij opgeteld.
Nu wil ik dat bij een bepaald aantal, de telling weer opnieuw begint.
Dus in de kolom totaalnu, staat dadelijk 1 t/m 25 ofzo, en als je bij 25 bent, begint de volgende rij weer bij 1 te tellen?
Hoe kan ik dit nu zo aanpassen? Ik heb het al zo geprobeerd:
Ik krijg hiermee wel 1tm/25, en daarna ook weer 1.
Maar daarna telt ie niet meer door, naar weer 25 en zo verder?
Gewijzigd op 01/01/1970 01:00:00 door Davy Jansen
Waarom wil je dit trouwens gaan doen? Het doel is mij nu niet duidelijk
En dan weer opnieuw? Het is misschien niet zo slim nee, om een losse kolom te gebruiken, maar ik wist niet of het slim was om hiervoor gewoon de id's te gebruiken?
Heb je een idee, hoe ik alleen de 25 en de 100ste rij eruit kan halen (bijv)
En dan elke keer opnieuw, dus bijv dan weer bij 125 en 200, en zo door?
Wat is de 25e en 100ste rij? Wanneer je records gaat verwijderen, verandert dit.
Chupskie, in een database hoeft data niet gesorteert te staan. Het is dan ook moeilijk om te spreken van de '25e' of '100e' rij aangezien dat natuurlijk relatief is. Bij het selecteren van gegevens uit de database kun je de resultaat-set natuurlijk wel sorteren.
@Blanche, dus ik moet na dat ik ze geselecteerd heb, ze gaan sorteren?
Maar hoe kan ik dat dan doen? Of begrijp ik je nu verkeerd?
De begrippen 25e en 100e zijn dus pas van toepassing nadat je de juiste records hebt opgevraagd en deze op de gewenste volgorde hebt gezet. Het kan dus best zijn dat van de 23.456.287 records, er slechts 3 records aan jouw voorwaarde voldoen. En daar sta je dan met jouw plan om het 25e record weer te geven...
Dus nogmaals, wat is nu de bedoeling?
Het sorteren kun je gewoon doen tijdens het selecteren:
Nu worden alle gegevens records met gegevens uit kolom1 en kolom2 geselecteerd en oplopend gesorteerd aan de hand van kolom1. Maar stel nu dat je had gesorteerd op kolom2, dan had de 25e rij uit je resultaat-set hoogstwaarschijnlijk een ander record bevat.
SELECT totaalnu FROM kopers ORDER BY totaalnu DESC
Nou wou ik eigenlijk gewoon dat elke:
25 en 100
125 en 200
225 en 300
325 en 400
enz..
Bijvoorbeeld een bericht krijgen.
Ik dacht dat los ik gewoon op met een if else..
if($row['totaalnu'] == "25"){
echo "Jij bent de gelukkige rij";
}else{
echo "de rest van de rijen hebben pech :P";
}
Maarjah, als we dan bij id 125 zitten, dan pakt ie dit niet meer..
Daarom dacht ik, in een bepaalde kolom getallen 1 opslaan en bij elke nieuwe rij +1 erbij optellen in die kolom. En dan zo tot 100, en dan dat die rij weer opnieuw begint bij 1.
Kan dit? Ik hoop dat jullie nu snappen wat ik wil bereiken!
Wanneer jij om de 25 rijen een berichtje wilt weergeven, dan laat je in de while-loop gewoon een tellertje meelopen.
Code (php)
Niet getest
Dan pakt hij dit pas als de 8ste rij wordt toegevoegd.
En daarna blijft bij elke nieuwe rij, dit bericht staan?
Terwijl dat bericht dan weer weg moet gaan, en pas weer te voorschijn moet komen bij 5 rijen daarna bijvoorbeeld?
Kan dit ook?
PHP stuurt namelijk de data pas naar de browser als alles gedaan is. dus je kan nooit zien wat php doet...
Dat er dan een update query komt bij, if( $row['dit'] == "300")){ hier dan de update query..
En dat dan update query de telling weer op 1 zet in de volgende rij?
Of 2de manier, dat er dan bijvoorbeeld -300 komt, en dat hij dan ook weer bij 1 begint?
Kan het niet op 1 van deze 2manieren? (dan is het misschien wel slim, om bij elke rij +1 in ander kolom mee te tellen? of niet?
Code (php)
Quote:
Zoals dus ook al eerder gezegd, kun je niet spreken van een 300ste rij in een database. Je zou alleen kunnen spreken over een 300ste rij in de resultaat-set van een query die je op je database hebt uitgevoerd.dat stel dat we bij de 300ste rij zitten in het database.