MySQL rownummer achterhalen

Gestart doorPascal5 reacties28 weergaven

6 berichten · pagina 1 van 1

Pascal

Lid · Topicstarter

Berichten
1.712
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Stel ik heb een tabel "namen" die er zo uit ziet:

id | naam
-------------
5 | Jan
6 | Piet
9 | Karel
12| Klaas
14| Geert

De ids volgen elkaar niet goed op omdat er bijvoorbeeld een paar namen verwijderd zijn.

Nu wil ik aan de hand van een query weten hoeveelste row Klaas is in deze tabel. Hij is uiteraard nummer 4 maar hoe kom ik daar via een query achter?
Ik wil dus bijvoorbeeld deze query hebben: "SELECT * FROM namen WHERE naam = Klaas"
en dat ik dan via een of andere functie of wat dan ook als result "4" kan krijgen.

Heb echt al heel wat gezocht, en kom uit op dit:

SET @rownum := 0; 
SELECT @rownum := @rownum+1 AS hoeveelste FROM namen


Maar dat werkt voor geen meter want dan krijg ik gewoon een mooie error emopompom
edit; met een while/for loop en een $i = 1; en $i++ gaat het dus niet werken want dan zou ik alle namen moeten echoén, ik kan volgens mij niet alleen Klaas echoén met hoeveelste hij is in de tabel.

$result = mysql_query("SELECT * FROM namen");

$i = 1;
while($row = mysql_fetch_assoc($result)){
echo $row[hoeveelste] . ": " . $row[naam];
$i++;
}


Dat werkt dus niet want dan krijg ik een lijstje met alle namen en dat moet ik niet
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
SELECT COUNT(1) AS welke FROM namen WHERE id <= (SELECT id FROM namen WHERE naam = Klaas) ORDER BY id ASC


Zoiets?
0
Berichten
3.788
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
kan je niet gewoon de echo ervoor weghalen, en dan laten doorlopen tot hij klaas heeft, zoeits
DEZE CODE KLOPT NIET HOOR< MAAR IETS IN DE RICHTING:
$result = mysql_query("SELECT * FROM namen");

$i = 1;
while($row = mysql_fetch_assoc($result)){
while($row[naam] != klaas){
$i++;
}
}

En dan daaronder:

$result2 = mysql_query("SELECT * FROM namen WHERE naam = Klaas");
$row2 = mysql_fetch_assoc($result2);
echo "$i" . $row[naam];
0
Pascal

Lid · Topicstarter

Berichten
1.712
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Lennard schreef:
SELECT COUNT(1) AS welke FROM namen WHERE id <= (SELECT id FROM namen WHERE naam = Klaas) ORDER BY id ASC
Zoiets?

Omg werkt perfect emoHet komt er dus op neer dat je eigenlijk alles telt tot en met het id van Klaas ofzo emo?

Bedankt, snap niet waarom ze overal op internet zo moeilijk moeten doen.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ja, je haalt het id van Klaas op en telt het aantal rijen wat een id heeft lager dan of gelijk aan het id van Klaas. clown
Heel simpel idd. emo
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dit had ik ook nodig maar dan voor het forum van GLS.
Bedankt!
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren