Prüfung ob Tabelle vorhanden -> Erstellen oder Updaten je nach Ergebnis

MisterMi

Erfahrenes Mitglied
Hallo,

ich kenne mich mit SQL nicht so aus und wollte in meinem PHP Script folgende Prüfung einfügen:

ich möchte nachschauen lassen ob Bereits eine Tabelle mit dem Usernamen da ist. ($_SESSION['user'])
Wenn es bereits eine gibt, soll diese ein Update erfahren.

D. h. mysql_query("INSERT INTO $user (`Name`) VALUES (".implode('),(',$alleSpieler).")"); soll als Update erfolgen.

Wenn es die Tabelle noch nicht gibt soll diese angelegt werden und anschließend:
mysql_query("INSERT INTO $user (`Name`) VALUES (".implode('),(',$alleSpieler).")");
ausgeführt werden.

Wie muss das aussehen?

Vielen Dank
 
Is das dein Ernst dass du für jeden User eine eigene Tabelle machen willst?
Mach doch eine Tabelle und nimm den User als eine eigene Spalte.

Wenn doch, du kannst die Tabelle INFORMATION_SCHEMA TABLES abfragen ob deine Tabelle exisitiert
 
Und wie prüfe ich dann Einträge in der Tabelle und aktualisiere nur die mit dem User wenn ich eine Tabelle habe mit den Spalten "User" und "SpielerIDs"?
 
Wollte es jetzt so lösen:


mysql_query("INSERT INTO kader (`spielerid`, `username`) VALUES (".implode('),(',$alleSpieler).")", $user);

$user ist der name des angemeldeten Users und soll dann in jeder zeile stehen und es werden ids von Spielern eingetragen:

In etwa soll es so aussehen:

Test 11
Test 23
Test 101
Hugo 22
Hugo 12

...

Es klappt aber mit der Fehlermeldung nicht:
Warning: mysql_query() expects parameter 2 to be resource, string given in /customers/b/3/5/mirkolinho.de/httpd.www/DBschreiben.php on line 21

Zeile 21 ist der SQL Befehl oben...
 
Das gibt Ids aus die aus Arrays zusammengesetzt wurden.

$alleSpieler = array_merge($tor, $abwehr, $mittelfeld, $sturm);

mysql_query("INSERT INTO kader (`spielerid`, `username`) VALUES (".implode('),(',$alleSpieler).")", $user);

Vorher hat das funktioniert aber ich habe jetzt noch den Usernamen mit reinbringen wollen und vorher hab ich nur die Ids in die Tabelle geschrieben. Und mit 2 Werten geht es nicht mehr.
 
INSERT INTO kader (`spielerid`, `username`) VALUES ('20'),('66'),('236'),('455'),('456'), Test You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Test' at line 1
 
Und schau dir das jetzt mal genau an und vergleiche es mit der MySQL-Doku.
Da gibtst 2 Felder vor und füllst nur eines ab.
 
Zurück