Frage zu CREATE TABLE/INSERT INTO
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
angeben
anweisung
code
datei
eintrag
erstellen
fehler
glauben
handbuch
machen
not
null
schritt
sinn
spalten
tabelle
test
text
waldorf
-
Ich möchte Tabellen samt Einträgen per Code erstellen.
Ich benutze dazu:
<? $sql = "CREATE TABLE test (eintrag TEXT, name TEXT)"; ?>
Bzw.:
<? $sql = "INSERT INTO test VALUES('bla', 'blub')"; ?>
So weit, so gut. Nun wollte ich aber Erstellen der Tabelle
plus Einträge in einem Schritt erledigen. Dazu, hatte ich gedacht, funktioniert Folgendes - stand auch so im Handbuch:
<? $sql = "CREATE TABLE test (eintrag TEXT, name TEXT); INSERT INTO test VALUES('bla', 'blub')"; $query = mysql_query($sql); ?>
Das funktioniert aber nicht. Ich habe mir jetzt geholfen,
indem ich den Code umständlich aufgespalten habe mittels
Variablen. Das geht auch, ist aber, wie gesagt, umständlich:
$sql1 = "CREATE TABLE test (eintrag TEXT, name TEXT)"; $query1 = mysql_query($sql1); $sql2 = "INSERT INTO test VALUES('bla', 'blub')"; $query2 = mysql_query($sql2); ?>
Ist das denn "normal"??
Beitrag geändert: 28.9.2008 19:32:38 von waldorf
Beitrag geändert: 28.9.2008 19:33:13 von waldorf
Beitrag geändert: 28.9.2008 19:34:41 von waldorf -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
du musst die spalten angeben:
$sql = "INSERT INTO test(Spalte1, Spalte2) VALUES('bla', 'blub')"; mysql_query($sql) OR DIE("Es ist ein Fehler aufgetreten".mysql_error());
und wahrscheinlich beim Table erstellen noch einen Primary Key angeben.
$sql = "CREATE TABLE test (id INT NOT NULL AUTO_INCREMENT, eintrag TEXT, name TEXT, PRIMARY KEY(id))"; mysql_query($sql) OR DIE("Es ist ein Fehler aufgetreten".mysql_error());
Beitrag geändert: 28.9.2008 19:36:55 von myhead -
...doch ich mein auch man könnte, egal was es für einen Sinn hat, beides direkt machen...nur ...ne...der Sinn?! ^^
-
du musst die spalten angeben:
$sql = "INSERT INTO test(Spalte1, Spalte2) VALUES('bla', 'blub')"; mysql_query($sql) OR DIE("Es ist ein Fehler aufgetreten".mysql_error());
und wahrscheinlich beim Table erstellen noch einen Primary Key angeben.
$sql = "CREATE TABLE test (id INT NOT NULL AUTO_INCREMENT, eintrag TEXT, name TEXT, PRIMARY KEY(id))"; mysql_query($sql) OR DIE("Es ist ein Fehler aufgetreten".mysql_error());
Beitrag geändert: 28.9.2008 19:36:55 von myhead
Ich bin mir nicht sicher, ob es daran liegt. So eine Version
hatte ich auch schon mal...
Per Code landen die Einträge normalerweise automatisch an
der richtigen Stelle, das ist jedenfalls so bei meiner
letzten "aufgespaltenen" Version, die ja funkioniert.
Es hakt an der Stelle, wo ich das Erstellen der Tabelle und
das Eintragen in die Tabelle mit dem "sql =" versuche zusammenzubringen...
Beitrag geändert: 28.9.2008 19:40:24 von waldorf -
Ich glaube kaum, dass du beides auf einmal machen kannst.
Musst eine Tabelle ja eh nur einmal erstellen. Was für Sinn sollte es auch zwingend geben jedes Mal, wenn man einer Tabelle was hinzufügt die Tabelle neu zu erstellen :)
Aber klär mich gerne auf.
Hmmm, jaa... klingt irgendwie logisch...
Und was mach ich jetzt mit meinem handbuch.. wegschmeißen?
Das steht da so drin!;)
-
naja...wenns immernoch nicht klappt dann lass dir mal die fehlermeldungen ausgeben
$sql = "Abfrage"; mysql_query($sql) OR DIE("Fehler: ".mysql_error());
-
Schau dir im PHPmyadmin mal die SQL Synax an, wenn du meherer Abfragen / delete Anweisungen gleichzeitig machst.
Das geht ganz einfach, indem du zuerst einige Datensätze erstellst, und dann diese mit einem Häkchen markierst und auf löschen gehst.
Der PMA zeigt dann die SQL Anweisung an.
So wie der das dann macht, kannst du es genauso machen.
Gruß, Prog -
@karpfen.
Ich glaube kaum, dass du beides auf einmal machen kannst.
Musst eine Tabelle ja eh nur einmal erstellen. Was für Sinn sollte es auch zwingend geben jedes Mal, wenn man einer Tabelle was hinzufügt die Tabelle neu zu erstellen :)
Aber klär mich gerne auf.
Um das noch mal zu erklären: Es handelt sich um das Script einer
Setup-Datei für ein CMS. Die Tabellen sollen dort erstellt werden,
die Einträge sollen Test-Einträge sein. Nach dem Setup würde
die Datei wieder gelöscht - die Einträge würden danach natürlich
in einer eigenen Config-Datei vorgenommen. Insofern macht es schon
Sinn zu versuchen, beide Schritte - Tabellenerstellung plus
Testeinträge - zusammen zu machen.
Geht aber irgendwie nicht...
In dem Code werden nach $sqlcode = in einem ellenlangen Abschnitt
die Befehle "CREATE TABLE" und "INSERT TO" gehängt, nur getrennt
mit ";"...
Klappt nicht, daher habe ich alles aufgespalten.
Beitrag geändert: 28.9.2008 20:27:59 von waldorf
Beitrag geändert: 28.9.2008 20:28:55 von waldorf -
Schau dir im PHPmyadmin mal die SQL Synax an, wenn du meherer Abfragen / delete Anweisungen gleichzeitig machst.
Das geht ganz einfach, indem du zuerst einige Datensätze erstellst, und dann diese mit einem Häkchen markierst und auf löschen gehst.
Der PMA zeigt dann die SQL Anweisung an.
So wie der das dann macht, kannst du es genauso machen.
Gruß, Prog
Ich werd's mal ausprobieren...;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage