# INSERT TO mehrere Tabellen



## bibibär (17. Mai 2007)

Hallo Leute,

ich bin Anfänger in php und mySQL und brauche Hilfe.

ich habe ein Formular erstellt, welches die Daten in einer Tabelle in einer mySQL-Datenbank speichert.
Ich verwende dafür:

```
<?php
  $eintrag = "INSERT INTO links (url, urlname, name,
  banner, beschreibung) VALUES ('$url', '$hpname',
  '$name', '$banner','$beschreibung')";
  ?>

<?php
  $eintragen = mysql_query($eintrag);
  ?>
```

...das klappt auch recht gut  

Ich möchte aber, daß die Daten in mehreren / verschiedenen Tabellen gespeichert werden
Wie lautet der php-code dafür?

Ich habe im Netz schon viel gesucht, aber immer nur Erklärungen und Beispiele gefunden wie man Daten in 1 Tabelle speichert, nicht in 2,3 oder x Tabellen  

Bitte, bitte hilft mir

Gruß
bibibär


----------



## Flex (17. Mai 2007)

Mit einem Query in mehrere Tabellen geht nicht.
Also mehrere Queries ausführen.

Mehr Infos zu INSERT gibt es auch hier:

dev.mysql.com - INSERT


----------



## bibibär (17. Mai 2007)

Danke für die schnelle antwort! 

Hm 
Irgendwie muß es doch möglich sein, nach ähnlichem Prinzip laufen doch auch joomla, osCommerce...etc., oder nicht?
Dort füllt man auch ein Formular aus bzw. ändert Einstellungen und die Daten wandern in unterschiedliche Tabellen und können später wieder beliebig ausgelesen werden.

Im Prinzip möchte ich folgendes:

Ich habe ein formular und eine Datenbank mit 2 Tabellen (links und user)
Formular:
Feld: Linkname
Feld: Adresse
Feld: Beschreibung
Feld: User
Feld: Geschlecht

Es gibt 2 Tabellen: 
*1. Tabelle = links* (Spalte: LinkID, Spalte:UserID, Spalte: Linkname, Spalte:Adresse, Spalte: Beschreibung
*2. Tabelle = user* (Spalte: UserID, Spalte: User, Spalte: Geschlecht

Jetzt möchte ich, daß nach absenden des Formulars die *Link-Daten in die Links-Tabelle* und die *User-Daten in die User-Tabelle * gespeichert werden.
Die UserID in der *Tabelle Links *soll automatisch von der *Tabelle User *bezogen werden.

Gibts keine Lösung dafür?


----------



## Flex (17. Mai 2007)

```
$user_sql = "INSERT INTO `user`
(`user`, `geschlecht`)
VALUES ('".$user."', '".$geschlecht."')";
mysql_query($user_sql);

$link_sql = "INSERT INTO `links`
(`userid`, `linkname`, `beschreibung`, `adresse`)
VALUES ('".mysql_insert_id()."', '".$linkname."', '".$linkname."', '".$linkname."');
mysql_query($link_sql);
```

So in der Art sollte es gehen.

Allerdings sollte die UserID dann ein Feld mit auto_increment sein.


----------



## deste (17. Mai 2007)

Hallo,

ja führ 2mal ein Query aus.


```
<?php 
  $eintrag = "INSERT INTO links (url, urlname, name, 
  banner, beschreibung) VALUES ('$url', '$hpname', 
  '$name', '$banner','$beschreibung')"; 
  $eintragen = mysql_query($eintrag); 

  $eintrag2 = "INSERT INTO user(user, geschlecht) VALUES ('$user', '$geschlecht')"; 
  $eingetragen = mysql_query($eintrag2); 
echo"Alle Daten wurden in die Datenbank eingetragen";
  ?>
```


----------



## bibibär (18. Mai 2007)

JAAAAAA Endlich klappt es 

Habe zwar gestern zig mal etwasähnliches versucht (eintrag1,eintrag2) aber irgendetwas habe ich wohl immer wieder falsch gemacht...wie auch immer jetz funktionierts.

* V I E L E N  D A N K  I H R  B E I D E N !*


----------



## bibibär (18. Mai 2007)

hi...ich bins nochmal  

Was bedeuten die Punkte bei ".$linkname.", bzw. was ist der Unterschied zu "$linkname" ohne Punkte?


Welche Zeichen muss/kann ändern bei dem Befehl  ".mysql_insert_id()."?
Es soll dort die userID von der tabelle user automatisch bezogen werden.

grüße
bibibär


----------

