WinFuture-Forum.de: Sql Insert Into Uind Id Mit übergeben? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Sql Insert Into Uind Id Mit übergeben?


#1 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

  geschrieben 26. Juli 2005 - 14:23

Moin moin @ all,

Ich hab da ein Problem, von dem ich weis das es geht, aber nicht wie ich es anstellen soll.
Unzwar habe ich ein Formularfeld welches aus 2 textfeldern besteht kat_de & kat_eng, diese werte werden in einer DB gespeichrt und auf id is der primärschlüssel. nun möchte ich aber, dass gleich beim erstellen eines neuen Eintrages die id in eine Seperate 2. tabelle gespeichert wird um sie später wieder zu vergleichen. aber wie schreibe ich das in meinen code?
danke für eure hilfe.

Zitat

if ($_REQUEST['submit_kat'])
{
    $query="INSERT INTO db_kategorie (kat_name_de, kat_name_eng) VALUES
    ('$kat_name_de', '$kat_name_eng');";


  $res = mysql_query($query);

   
    if (mysql_affected_rows() == 1)
  { 
echo '<strong>neue Galerie wurde erfolgreich erstellt / new gallery was been created</strong>';
     
    } else {
      echo mysql_error();
    echo "funst net ";
 
    }
   
   
}

0

Anzeige



#2 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 26. Juli 2005 - 14:27

Hm, eine nicht ganz saubere Lösung wäre, sofort nach dem INSERT-Kommando ein "SELECT `id`FROM `tabelle`ORDER BY `id` DESC LIMIT 1" zu machen. Damit würdest du den letzten Eintrag (bzw. dessen ID), also den soeben erstellten, auslesen und könntest mir ihm weiter arbeiten.
0

#3 Mitglied ist offline   quix 

  • Gruppe: aktive Mitglieder
  • Beiträge: 69
  • Beigetreten: 09. März 05
  • Reputation: 0

geschrieben 26. Juli 2005 - 14:36

noch eine unsaubere lösung ist noch einen timestamp mit in die DB zu schreiben und dann die ID anhand des timestamps + kat_name_de + kat_name_eng aus der DB auszulesen. Wird halt problematisch wenn 2 Datensätze exakt zum selben Zeitpunkt geschrieben werden.
0

#4 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 26. Juli 2005 - 14:38

http://dev.mysql.com...te-trigger.html

Eine sauberere Lösung.
0

#5 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 26. Juli 2005 - 14:38

hm werds mal ausprobieren, müsste dann also noch eine insert anweisung machen die den eintrag dann in eine andere Tabelle übergibt. das muss doch aber auch gleich in einer anweisung zu realisieren sein. aber danke erstmal
0

#6 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 26. Juli 2005 - 14:44

@stefanra

mit dem CREATE TRIGGER kann ich ja nu garnix anfangen, höttest du da ein anschauungsbeispiel für mich? werd aus der seite nich ganz so schlau. thx
0

#7 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 26. Juli 2005 - 14:48

Syntax
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt


Beispiel
CREATE TRIGGER testtrigger AFTER INSERT ON tabelle1 FOR EACH ROW trigger_stmt


Anstatt trigger_stmt musst du dann dein Insert-Kommando für die zweite Tabelle schreiben.
0

#8 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 26. Juli 2005 - 15:03

hm habs mal so geschrieben wie ich dachte das es richtig wäre, aber wäre ja zu schön wenns bei mir gleich beim 1. mal funzen würde.
ich raffs einfach net?

Zitat

if ($_REQUEST['submit_kat'])
{
    $query="INSERT INTO db_kategorie (kat_name_de, kat_name_eng) VALUES
    ('$kat_name_de', '$kat_name_eng');";

$query2="CREATE TRIGGER testtrigger AFTER INSERT ON db_kategorie FOR EACH ROW INSERT INTO test (id_kat) VALUES
    ('$id');";

  $res = mysql_query($query,$query2);
 
 
    
     if (mysql_affected_rows() == 1)
  { 
echo '<strong>neue Galerie wurde erfolgreich erstellt / new gallery was been created</strong>';
      
     } else {
      echo mysql_error();
     echo "funst net ";
  
     }
    
   
}

Dieser Beitrag wurde von -=[Mad]=- bearbeitet: 26. Juli 2005 - 15:48

0

#9 Mitglied ist offline   Xfer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 06. Mai 04
  • Reputation: 0
  • Wohnort:Hessen

geschrieben 27. Juli 2005 - 08:44

hi, wie wäre es damit?

http://de3.php.net/mysql_insert_id

cu
Xfer
0

#10 Mitglied ist offline   -=[Mad]=- 

  • Gruppe: aktive Mitglieder
  • Beiträge: 61
  • Beigetreten: 05. Juli 05
  • Reputation: 0

geschrieben 27. Juli 2005 - 16:59

das is auf jedem fall schon mal ne gute idee, nur muss ich das auch ne 2. insert anweisung basteln. aber es FUNKTIONIERT erstmal.

thx

Dieser Beitrag wurde von -=[Mad]=- bearbeitet: 27. Juli 2005 - 17:12

0

#11 Mitglied ist offline   Xfer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 06. Mai 04
  • Reputation: 0
  • Wohnort:Hessen

geschrieben 28. Juli 2005 - 08:35

Vielleicht kannst du damit noch was anfangen:

SELECT LAST_INSERT_ID() as new_id #Returns ID of last created row

http://www.ilovejack...cheat_sheet.pdf

cu
Xfer
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0