LAST_INSERT_ID met voorwaarde
Mark Kazemier
29/01/2010 07:52:00Danny Kater schreef op 28.01.2010 23:03:
Onderstaande is het geworden, werkt perfect. Nu alleen nog even aan die foutafhandeling werken!
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE gebruiker = '".$_SESSION['gebruiker']."' ORDER BY id desc LIMIT 1") or die(mysql_error());
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
$_SESSION['advertentie'] = $idnew;
?>
$sql = mysql_query("SELECT `id` FROM `ss_advertenties` WHERE gebruiker = '".$_SESSION['gebruiker']."' ORDER BY id desc LIMIT 1") or die(mysql_error());
$rij = mysql_fetch_object($sql);
$idnew = $rij->id + 1;
$_SESSION['advertentie'] = $idnew;
?>
Dit gaat zeg maar helemaal niet goed. Wat nu als er tussen het toevoegen van de gebruiker met dit id en het opvragen van het nieuwe id een nieuwe gebruiker wordt toegevoegd? Die mogelijkheid is zeer goed aanwezig en dan werkt je hele script niet meer omdat je probeert een nieuwe gebruiker in je db te stoppen met een id dat al bestaat.
PHP hulp
25/12/2024 02:27:34Eddy E
29/01/2010 11:05:00Waarom wil je al een ID toekennen aan iets wat nog niet is?
Eerst advertentie maken, en dan kijken welk ID die heeft gehad.
Wat wel kan is, bij het tonen van een formulier, alvast een rij in de database voegen. Dus 'leeg', op wat kleine dingen na (ID, userid, tijd/datum, categorie etc).
En een kolom of hij 'af' is.
Die kan je dan gerust later bijwerken/vullen.
En lege rijen (die dus niet af zijn) en ouder dan 1 uur kan je gerust verwijderen. Ga niet met ID's kloten, laat dat de database doen.
Eerst advertentie maken, en dan kijken welk ID die heeft gehad.
Wat wel kan is, bij het tonen van een formulier, alvast een rij in de database voegen. Dus 'leeg', op wat kleine dingen na (ID, userid, tijd/datum, categorie etc).
En een kolom of hij 'af' is.
Die kan je dan gerust later bijwerken/vullen.
En lege rijen (die dus niet af zijn) en ouder dan 1 uur kan je gerust verwijderen. Ga niet met ID's kloten, laat dat de database doen.