mysql_insert_id() gibt immer das auto increment aus dem primary key der zuletzt hinzugefügten spalte einer tabelle zurück.
Jetzt habe ich diesen Quelltext, in der diese Funktion gleich 2mal auftaucht.
Den Fehler hab ich markiert, an dieser stelle bekommt $tags_id den selben wert wie $login_id obwohl zuvor die INSERT abfrage ein ganz anderen auto increment in einer anderen tabelle hinzufügt. Logisch erscheint mir das jedenfalls nicht. Wer hat Rat?
Jetzt habe ich diesen Quelltext, in der diese Funktion gleich 2mal auftaucht.
PHP-Code:
$sql = "
INSERT INTO login (
name,
url,
benutzer_id,
icon,
suchbegriffe
)
VALUES (
'$name',
'$login_url',
'$benutzer_id',
'$icon',
'$suchbegriffe'
)";
mysql_query($sql);
$login_id = mysql_insert_id();
$suchtags = explode(",",$suchbegriffe);
foreach($suchtags as $tag)
{
$sql = "SELECT id FROM tags WHERE name = '.$tag.'";
$erg=mysql_query($sql);
list($tags_id) = mysql_fetch_row($erg);
$rows=mysql_num_rows($erg);
if ($rows == 0)
{
$sql = "INSERT INTO tags (name) VALUES ('$tag')";
mysql_query($sql);
$tags_id = mysql_insert_id(); /*FEHLER*/
echo $tags_id;
}
$sql = "INSERT INTO login_tags (tag_id,login_id) VALUES ($tags_id,$login_id)";
mysql_query($sql);
}
Kommentar