hoogste id uit db halen
Is het mogenlijk om het hoogste id nummer uit een database te halen en daar dan een nummer bij op te tellen en deze in een php script als echo terug te geven.
en als dit mogenlijk is heeft iemand dan ook een voorbeeld?
Gewijzigd op 01/01/1970 01:00:00 door Bram
en hoe kan ik er dan nog een bij op tellen
Wanneer je de query uitvoert, krijg je altijd een resource id retour. Vervolgens ga je fetchen met bv. mysql_fetch_assoc() om de gegevens daadwerkelijk beschikbaar te krijgen in je php-code. Sla de php-handleiding er eens op na of kijk eens tussen de tutorials hoe je met de opgehaalde gegevens iets kunt doen.
alvast bedankt
ik ben er al uit was wel simpel eigenlijk :-)
$query = "SELECT MAX(id) + 1 FROM tabel";
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
while($row = mysql_fetch_assoc()){
$row['id'] = array_reverse($row['id']);
echo row['id'][0];
}
?>
while($row = mysql_fetch_assoc()){
$row['id'] = array_reverse($row['id']);
echo row['id'][0];
}
?>
Wat wil je met dit nieuwe nummer gaan doen? Toch niet om hiermee een nieuw record aan te maken? Dat gaat namelijk gegarandeerd verkeerd! Dat laat je door de database doen (auto_increment) en doe je nooit en te nimmer met de hand (al dan niet via een script).
eigenlijk is dat dus wel de bedoeling
om dat als ik iets uit de database verwijder en ik later weer een nieuwe record aan maak niet door telt vanaf het hoogte id nummer wat er momenteel in de database staat maar van af de hoogste id nummer die er ooit in deze tabel heefd gestaan.
Het id gebruik je over het algemeen als uniek nummer dat bij een record hoort om zo snel een record op te kunnen vragen.
Ben dan ook benieuwd naar de reden waarom.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
Bram:
@Frank
eigenlijk is dat dus wel de bedoeling
om dat als ik iets uit de database verwijder en ik later weer een nieuwe record aan maak niet door telt vanaf het hoogte id nummer wat er momenteel in de database staat maar van af de hoogste id nummer die er ooit in deze tabel heefd gestaan.
eigenlijk is dat dus wel de bedoeling
om dat als ik iets uit de database verwijder en ik later weer een nieuwe record aan maak niet door telt vanaf het hoogte id nummer wat er momenteel in de database staat maar van af de hoogste id nummer die er ooit in deze tabel heefd gestaan.
En wat is het probleem daarvan?
Bram:
Dit is de juiste weg om een gigantische berg problemen te creeeren... @Frank
eigenlijk is dat dus wel de bedoeling
om dat als ik iets uit de database verwijder en ik later weer een nieuwe record aan maak niet door telt vanaf het hoogte id nummer wat er momenteel in de database staat maar van af de hoogste id nummer die er ooit in deze tabel heefd gestaan.
eigenlijk is dat dus wel de bedoeling
om dat als ik iets uit de database verwijder en ik later weer een nieuwe record aan maak niet door telt vanaf het hoogte id nummer wat er momenteel in de database staat maar van af de hoogste id nummer die er ooit in deze tabel heefd gestaan.
Het id betekent helemaal niets! Echt helemaal niets. Daar ken je dus ook geen enkele betekenis aan toe. Je gebruikt het uitsluitend om unieke records te kunnen herkennen, meer doe je er niet mee. Of er nu nummer 167 of 1683759 in staat, het zal je een rotzorg zijn, het heeft geen enkele betekenis. Maar, omdat de diverse tabellen een verband met elkaar hebben wat meestal op het id is gebaseerd moet je dit nummer dus overal gebruiken. En dat is ook de reden dat je niet met de hand een nummertje moet gaan invoeren, dat kan alleen maar fout gaan. Bv. op het moment dat 2 verschillende scripts of gebruikers op hetzelfde moment hetzelfde nummer gaan invoeren. Dan ben je een corrupte database rijker... Laat de database dit lekker zelf uitzoeken met auto_increment. Dat gaat altijd goed.
En jij blijft met je vingertjes van de auto_increment en de id's af... ;)
Succes!