LAST_INSERT_ID (Wert will nicht in eine Variable!!!!)

tomtutorial

Erfahrenes Mitglied
Hallo miteinander,

habe vor ca. 2 Wochen angefangen PHP & MySQL zu lernen. Bin nun gerade dabei einen Onlineshop zu programmieren. Dabei ergibt sich folgendes Problem.

So sollte es funktionieren:

01. Eintrag in eine Tabelle
02. Auslesen zuletzt eingetragenen ID
03. Letzte ID in eine zwei Tabelle eintragen

Und bei Punkt 02. hängt das Script schon. Es ist mir nicht möglich die zu letzt eingetragene ID auszulesen und in eine Variable zu speichern.

Wenn ich den SQL Befehl aber direkt in SQL eingebe, dann spuckt er mir die gewünschte ID aus.

Siehe Code:
PHP:
<?php

if ($submit): //  Neue Unterkategorie hinzufuegen

	require("../include/db.inc");
// Neue Unterkategorie eintragen
  $sql = "INSERT INTO unterkategorie SET " .
         "name='$name'";
  if (@mysql_query($sql)) {
    echo("<p> Neue Unterkategorie hinzugef&uuml;gt</p>"); }
	else {
	echo("Fehler beim eintragen der Unterkategorie.");
	exit();
	}	
// ID der neuen Unterkategorie auslesen			 
  $ukatid = mysql_query("SELECT LAST_INSERT_ID(id) FROM unterkategorie");
  if (@mysql_query($ukatid)) {
    echo("<p> ID der Unterkategorie ausgelesen. ID ist: $ukatid</p>"); }
	else {
	echo("Fehler beim Auslesen der ID in der Unterkategorie.");
	exit();
	}
// Verknüpfen der Unterkategorie mit einer Hauptkategorie			 
  $sql3 = "INSERT INTO katlink SET ukatid='$ukatid', katid='$hauptkatid'";
  if (@mysql_query($sql3)) {
    echo("<p> Zur Hauptkategorie erfolgreich verknüpft</p>");
  } else {
    echo("<p> Fehler beim Hinzuf&uuml;gen einer neuen Unterkategorie: " .
         mysql_error() . "</p>");
		 exit();
  }

?>

Jetzt brauche ich nur noch den richtigen Tip von euch, bevor ich mir die Kugel gebe.

TOM
 
So müsste das funktionieren!
PHP:
<?php
 
// ID der neuen Unterkategorie auslesen             
  $ukatid = mysql_insert_id();
  if (mysql_insert_id() == 0) {
    echo("<p> ID der Unterkategorie ausgelesen. ID ist: $ukatid</p>"); }
    else {
    echo("Fehler beim Auslesen der ID in der Unterkategorie.");
    exit();
    }

?>
 
Zuletzt bearbeitet:
Ich danke euch beiden!!!

Ich sitze hier schon den ganzen Vormittag dran, jetzt funtzt es endlich.

@SonicBeam: Dein Script hat nicht funktioniert, hat mir aber den entsprechenden Denkaanstoß verpaßt.

Hier nochmal (für alle die es interessiert) der funktionierende Scriptteil:

PHP:
// ID der neuen Unterkategorie auslesen			 
  $ukatid = mysql_insert_id();
  if (@$ukatid > 0) {
    echo("<p> ID der Unterkategorie ausgelesen. ID ist: $ukatid</p>"); }
	else {
	echo("Fehler beim Auslesen der ID in der Unterkategorie.");
	exit();
	}

TOM
 
Zurück