Mysql - create table und insert

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysql - create table und insert

    Hallo !
    Ich hab folgenden Code, bei dem ich einfach nicht rausbekomm, was da falsch läuft, denn wenn ich diesen Code das erste mal ausführe, gibt es einen Fehler dass er die Tabelle nicht erstellen kann, und somit auch keine Daten in die Tabelle speichert. Geht man dann jedoch per "Zurück"-Taste zurück, funktioniert das ganze auf einmal, aber der erste Eintrag ist verloren.

    if (!$warenkorb){

    $warenkorbid = md5 (uniqid (rand()));
    setcookie("warenkorb","$warenkorbid", time()+3600*48);
    $warenkorbid = $warenkorb;

    }else{
    $warenkorbid = $warenkorb;

    //DB-Daten sind gesetzt !

    }
    $query = "select count(*) from $warenkorbid";
    $q = mysql_db_query ($db, "$query");

    if (!$q){
    mysql_query("CREATE TABLE $warenkorbid(nummer INT NOT NULL AUTO_INCREMENT PRIMARY KEY, urlklein VARCHAR(50), urlgross VARCHAR(50), bestellnummer VARCHAR(10), beschreibung VARCHAR(200) , groesse INT(2) , anzahl INT(2), preis INT(10))") or die ("Could not create Table");
    mysql_query("INSERT INTO $warenkorbid VALUES('', '$urlklein', '$urlgross', '$bestellnummer','$beschreibung','$groesse','$anzahl','$preis')")
    or die ("Fehler beim Einfügen !");
    header ("Location: http://www.ak-schmuck.de/warenkorb_anzeigen.php4");
    }
    else{
    mysql_query("INSERT INTO $warenkorbid VALUES('', '$urlklein', '$urlgross', '$bestellnummer','$beschreibung','$groesse','$anzahl','$preis')")
    or die ("Fehler beim Einfügen ohne Tabelle anzulegen!");
    header ("Location: http://www.ak-schmuck.de/warenkorb_anzeigen.php4");
    }
    mysql_close();

    Ich hoffe Ihr könnt mir sagen woran das liegt. Falls Ihr es selbst probieren wollt, geht auf http://www.ak-schmuck.de/suchen.html wählt etwas und klickt dann auf "In den Warenkorb"

    Gruss Christian

  • #2
    Wenn du den Cookie setzt, ist die Variable noch lange nicht gesetzt. Der Cookie wird nämlich erst beim nächsten Seitenaufruf ausgelesen.
    d.h.:

    $warenkorbid = $warenkorb

    ersetzen durch

    $warenkorb = $warenkorbid;


    Außerdem solltest du der md5-Funktion einen (alphabetischen seed) übergeben, um sicher zu gehen, daß die id nicht mit einer Ziffer beginnt. Damit läßt sich nämlich keine Tabelle erstellen.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Titus - leider weiss ich nicht, was ein "seed" ist. Kann ich der Id nicht einfach nen Buchstaben voransetzen (Ich hoffe nicht das seed das bedeutet ) ?
      Könntest du mir erklären wie require() funktioniert ? Kann ich damit externe php-Dateien einfügen ? (Kann ich das dann auch in eine While-Schleife setzen ? Wie ???) Danke !
      Gruß Christian




      [Editiert von Christian Seitz am 03-08-2001 um 19:08]

      Kommentar


      • #4
        Titus - leider weiss ich nicht, was ein "seed" ist. Kann ich der Id nicht einfach nen Buchstaben voransetzen (Ich hoffe nicht das seed das bedeutet ) ?
        Das Resultat ist jedenfalls in beiden Fällen ähnlich und erfüllt seinen Zweck.
        Könntest du mir erklären wie require() funktioniert ? Kann ich damit externe php-Dateien einfügen ? (Kann ich das dann auch in eine While-Schleife setzen ? Wie ???) Danke !
        Genua. Der "require"te Text wird so behandelt, als stände er statt des Require-Kommandos in deinem Skript.
        Aber Achtung:
        - php startet beim einbinden wieder im HTML-Modus, für php mußt du also wieder einen Skript-Bereich öffnen.
        - Du darfst es nicht ohne weiteres in Schleifen benutzen, wenn du Funktionen definierst.
        - wenn du sie hinter einem if oder als einzigen Bestandteil einer Schleife benutzt, häng geschweifte Klammern ums require!
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Hallo !

          Ich hab jetzt das require probiert, allerdings hat es damit nicht so geklappt, bis ich rewquire_once benutzt habe, am anfang des scripts. Danach tat es.

          Jetzt hab ich aber gleich noch ein Problem:
          Ich möchte eine Benutzereingabe "sicher" machen, sie auf sonderzeichen überprüfen. Wie mache ich das am geschicktesten ? Allerdings kommt ein E-Mail eingabefeld sowie ein Strasse-Feld.

          Gruss Christian

          Kommentar


          • #6
            $escapedvalue = mysql_escape_string($value);
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar

            Lädt...
            X