kostenloser Webspace werbefrei: lima-city


Frage zu CREATE TABLE/INSERT INTO

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    waldorf

    waldorf hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. 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.
  5. ...doch ich mein auch man könnte, egal was es für einen Sinn hat, beides direkt machen...nur ...ne...der Sinn?! ^^
  6. Autor dieses Themas

    waldorf

    waldorf hat kostenlosen Webspace.


    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
  7. Autor dieses Themas

    waldorf

    waldorf hat kostenlosen Webspace.


    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?:eek:
    Das steht da so drin!;)
  8. naja...wenns immernoch nicht klappt dann lass dir mal die fehlermeldungen ausgeben

    $sql = "Abfrage";
    
    mysql_query($sql) OR DIE("Fehler: ".mysql_error());
  9. 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
  10. Autor dieses Themas

    waldorf

    waldorf hat kostenlosen Webspace.

    @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
  11. Autor dieses Themas

    waldorf

    waldorf hat kostenlosen Webspace.


    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...;)
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!