Problem beim Auslesen der id

ciberjoerg

Erfahrenes Mitglied
Ich hab ein problem und zwar wird mir die ID für den gerade erstellten Zeilensatz nicht angezeigt.

Mein code sieht wie folgt aus:
PHP:
$user = $umsSystem->user_id;
$name = $umsSystem->nic;
$to_id = $_GET[id];
$to_name = $_GET[uname];
$thetitle = "Freundschaftsangebot erhalten!";
$themsg = "Der User <a href=\"../public_profil.php?user_id=$user\" target=\"_top\">$name</a> hat dir seine Freundschaft angeboten.<br> In der <a href=\"\" target=\"_top\">Friendlist</a> kannst du die Freundschaft <a href=\"../flist.php?action=acp&id=$fa_id\" target=\"_top\">annehmen</a>, oder <a href=\"../flist.php?action=dny&id=$fa_id\" target=\"_top\">ablehnen</a>.";
$datum = time();
$aktiv = 1;
if($_GET[action] == "sfa")
{
    if($_GET[id] == "" OR $_GET[id] == "$user")
    {
        echo"<center>Du kannst dir selbst kein Freundschaftsangebot schicken!<br><a href=\"javascript:history.back()\">Zurueck</a></center>";
        exit;
    };//2
    
        $eintrag = "INSERT INTO flist (`id`, `an_id`, `von_id`, `time`, `status`) VALUES ('', '$to_id', '$user', '$datum', '0')";
        $eintragen = mysql_query($eintrag)or die(mysql_error());//Wurde der Eintrag erfolgreich gespeichert?
        if($eintragen == true)//fa id auslesen und nachricht senden
   {
       $abfrage = "SELECT * FROM flist WHERE von_id = '$user' AND time ='$datum'";
$ergebnis = mysql_query($abfrage)or die(mysql_error());
while($row = mysql_fetch_object($ergebnis))
    {
        $fa_id = $row->id;
        $eintrag2 = "INSERT INTO fapm0_posteingang ( `id` , `nick` , `title` , `message` , `absender` , `new` , `date` , `unread`) VALUES ('', '$to_name', '$thetitle', '$themsg', '$name', '1', '$datum', '1')";

$eintragen2 = mysql_query($eintrag2) or die(mysql_error());
//Wurde der Eintrag erfolgreich gespeichert?
if($eintragen2 == true)
   {
       
   echo "Beitrag erfolgreich gespeichert. ";
   }
else
   {
   echo "Fehler beim Speichern";
   }
    }
       
   }
   else{
       echo "Fehler beim Speichern!";
   }
}

das problem in der variable "$themsg" die zum senden der Nachricht dient wird keine id "$fa_id" eingefügt. woran könnte das liegen?
 
Das Problem liegt darin, dass du die $fa_id viel später definierst. Das heißt, dass sie zur Zeit der Erstellung von $themsg noch gar nicht verfügbar ist.
 
Du musst nicht noch eine abfrage machen.
mysql_insert liefer das ebenfalls.

Nimm auch nich die id zum insert raus. Wenn du ein auto_increment auf dem Feld hast, musst du es im Insert nict abfüllen

PHP:
        $eintrag = "INSERT INTO flist (an_id, von_id, `time`, status) VALUES ('{$to_id}', '{$user}', '{$datum}', '0')";
        $eintragen = mysql_query($eintrag)or die(mysql_error());//Wurde der Eintrag erfolgreich gespeichert?
        $fa_id = mysql_insert_id();
 
Danke an alle. das mit dem "mysql_insert_id();" scheint ne sehr einfachere Lösung zu sein .
Ich werd das mal testen, und sehen ob das geht. Warum ich die id auslesen will
liegt daran das ich in der Nachricht ja festlegen muss um welche fa es sich handelt. Um zu bestätigen
oder abzulehnen.

aber nochmals danke. bei fragen zum
mysql_insert_id(); Werde ich mich dann nochmals melden.
 
Zurück