Andreas: Datein in DB einfügen

Hallo,
ich will jetzt einige Daten in die Datenbank einfügen nur funktioniert das leiner nicht. Mein kleines Taschenbuch hilft mir da auch nicht weiter. :(

Vieleicht könnt ihr mir helfen wo da der Fehler liegt. die Datenbank wird vorher natürlich geöffnet:

$sql = "insert into programm (id,name,link,beschreibung,kategorie,logo,anmelden,on)";
$sql.= "values ('$id','$name','$pp_link','$pp_beschreibung','$pp_kat','$pp_logo','$pp_anmelden','$pp_listen')";
$result=mysql_query($sql);

MfG. Andreas

  1. Nabend Andreas,

    Vieleicht könnt ihr mir helfen wo da der Fehler liegt.

    Bekommst du einen solchen ausgegeben?
    Hast du dir $sql einmal ausgeben lassen und überprüft, ob der String deinen Wünschen entspricht?
    Was meinst du eigentlich mit "funktioniert nicht"?

    Bis denne,

    1. Nabend Hubert,
      ein Fehler bekomme ich nicht angezeigt.
      Das Problem ist das nichts in die Datenbank geschrieben wird und ich nicht weiß wo das Problem(Fehler) liegt.

      Andreas

  2. Hallo Andreas!

    Auf den ersten Blick würde ich sagen, dass es an der Abfrage liegt (fehlendes Blank in der ersten Zeile). Schau ma mal :-)

    $sql = "insert into programm (id,name,link,beschreibung,kategorie,logo,anmelden,on) ";
    $sql.= "values ('$id','$name','$pp_link','$pp_beschreibung','$pp_kat','$pp_logo','$pp_anmelden','$pp_listen')";
    $result=mysql_query($sql);

    mfg

    norbert =:-)

  3. Hallo,

    $sql = "insert into programm (id,name,link,beschreibung,kategorie,logo,anmelden,on)";
    $sql.= "values ('$id','$name','$pp_link','$pp_beschreibung','$pp_kat','$pp_logo','$pp_anmelden','$pp_listen')";
    $result=mysql_query($sql);

    Vermutlich fehlt ein Leerzeichen an der Stelle, wo Du die beiden Zeilen zusammenfuegst.
    Zudem muss sichergestellt sein, dass alle "boesen" Zeichen in allen Variablen
    maskiert sind - das passiert mit addslashes() oder besser mysql_escape_string()
    http://www.php.net/manual/de/function.addslashes.php
    http://www.php.net/manual/de/function.mysql-escape-string.php

    Lass Dir mal die $sql anzeigen:
    echo $sql;
    Und auch die MySQL-Fehlermeldungen solltest Du anzeigen lassen, die zeigen
    den "wunden Punkt" meist auf:
    http://www.php.net/manual/de/function.mysql-error.php

    Gruesse,

    Thomas

    1. Hallo,
      oder kann es sein das die Werte in der Datenbank falsch gesetzt sind?id und on habe ich auf int(5) den Rest auf Text gesetzt.

      MfG Andreas

      1. Hallo,

        oder kann es sein das die Werte in der Datenbank falsch gesetzt sind?id und on habe ich auf int(5) den Rest auf Text gesetzt.

        Bevor wir hier unnoetig zu spekulieren anfangen:
        Bitte gehe zuerst mal nach den Vorschlaegen vor, die wir Dir gemacht haben, naemlich:
        1. die Query anzeigen lassen
        2. die allfaelligen Fehlermeldungen anzeigen zu lassen.
        Hoechstwahrscheinlich wirst Du so den Fehler finden.

        Falls es denn wirklich ein Typen-Problem ist, wird das
        vermutlich in der MySQL-Fehlermeldung stehen.

        "Dein Buechlein" ist offenbar schlecht, sonst waeren die Beispiele
        darin so formuliert, dass die Fehlermeldungen angezeigt werden.

        Nimm als Beispiel lieber:
        http://www.php.net/manual/de/ref.mysql.php#mysql.examples
        http://www.php.net/manual/de/function.mysql-error.php

        Gruesse,

        Thomas

        1. Hallo,
          einen Fehler konnte ich schon finden und zwar das Leerzeichen. In eine Tabelle wurden schon die Daten geschrieben. Aber in die die ich hier angegeben hatte wird noch immer nichts geschrieben.

          Kannst du mit bitte sagen wie ich das einbinden muß damit ich Fehler angezeigt bekomme. Zum ersten kann ich kein englisch und bei den Beispielen blicke ich nicht so recht durch.

          Ich weiß auch das jetzt viele sagen würden ich sollte ersteinmal lernen die Beschreibungen zu verstehen doch anhand Beispiele werde ich dies wohl besser verstehen.

          MfG. Andreas

          1. hi,

            Kannst du mit bitte sagen wie ich das einbinden muß damit ich Fehler angezeigt bekomme. Zum ersten kann ich kein englisch und bei den Beispielen blicke ich nicht so recht durch.
            Ich weiß auch das jetzt viele sagen würden ich sollte ersteinmal lernen die Beschreibungen zu verstehen doch anhand Beispiele werde ich dies wohl besser verstehen.

            der von Thomas gepostete link http://www.php.net/manual/de/function.mysql-error.php enthält doch beispiele zur verwendung von mysql_error() - was verstehst du daran nicht?

            gruss,
            wahsaga

          2. Hallo Andreas!

            ... ersten kann ich kein englisch und bei den Beispielen blicke ich nicht so recht durch.

            http://www.php.net/manual/de/function.mysql-error.php

            deutsch - Beispiele und Userkommentare sind in der Onlineversion auch dabei :-)

            mfg

            norbert =:-)

          3. Hallo,

            Kannst du mit bitte sagen wie ich das einbinden muß damit ich Fehler angezeigt bekomme. Zum ersten kann ich kein englisch.

            Wie bitte? Ich habe Dir doch die Links zur deutschen Version
            des Manuals gegeben, nicht zur englischen!
            Alles, was Dir "englisch" vorkommt, sind vermutlich PHP-Befehle.
            Meist werden ja sogar die Variablennamen uebersetzt...

            und bei den Beispielen blicke ich nicht so recht durch.

            Zugegeben, sie sind ziemlich knapp gehalten.
            Aber sie erfuellen ihren Zweck.

            Die Grundlagen des PHP-Programmierens lernt man natuerlich nicht im Manual,
            sondern mit einem (guten) Buch, durch ausprobieren, durch nachvollziehen
            von guten Beispielen.

            Nun zu Dir:

            Du machst es im Moment so:
            $result=mysql_query($sql);

            Falls es einen Fehler gibt, ist $result=="false".

            Deshalb:
            if (!$result)
              { print("<p>MySQL-Fehlermeldung: ". mysql_error() ."</p>\n"); }
            else
              {
               print("<p>SQL-Query war erfolgreich.</p>\n");
               /* _Nun_ schauen, wieviele Zeilen das Resultat hat. */
              }

            Andere Moeglichkeit:
            if (mysql_error()!="") // d.h. wenn es eine MySQL-Fehlermeldung gibt:
              { print("<p>MySQL-Fehlermeldung: ". mysql_error() ."</p>\n"); }
            else // d.h. wenn es erfolgreich war:
              { print("<p>SQL-Query war erfolgreich.</p>\n"); }

            Gruesse,

            Thomas

            1. Hallo,
              ich habe das Problem jetzt entdeckt ! :)

              Ich hatte eine Spalte mit Namen "on" in der Tabelle. Ich habe den Namen on in an geändert und schon funktioniert alles.

              Auch war zusätzlich ein Fehler, mit dem Leerzeichen.

              Ich möchte euch nochmals für die mühen danken.

              MfG. Andreas

          4. Hallo,
            dann werde ich jetzt versuchen die Fehlermeldung zu überprüfen.
            Was ich an den Beispielen bei php-manuel nicht immer verstehe sind die Variablen. Ich weiß dann immer nicht so recht wo ich meine Var. einsetzen soll.
            Aber jetzt habe ich ja ein Beispiel und kann es vergleichen. :)

            MfG. Andreas

            1. Hallo Andreas,

              in der Entwurfsphase würde ich mit nach einem Query immer

              echo mysql_error($con);

              die MySQL-Fehlermeldung anzeigen lassen. Die ist meistens sehr aufschlussreich. $con ist die Connection-Nummer, falls Du mit meheren Datenbanken gleichzeitig arbeiten solltest.

              Grüße

              Tom

  4. Hallo,
    ich will jetzt einige Daten in die Datenbank einfügen nur funktioniert das leiner nicht. Mein kleines Taschenbuch hilft mir da auch nicht weiter. :(

    Vieleicht könnt ihr mir helfen wo da der Fehler liegt. die Datenbank wird vorher natürlich geöffnet:

    $sql = "insert into programm (id,name,link,beschreibung,kategorie,logo,anmelden,on)";
    $sql.= "values ('$id','$name','$pp_link','$pp_beschreibung','$pp_kat','$pp_logo','$pp_anmelden','$pp_listen')";
    $result=mysql_query($sql);

    Hallo Andreas, probier das mal klassisch!
    sql = "insert into programm (id,name,link,beschreibung,kategorie,logo,anmelden,on)
    values ('$id','$name','$pp_link','$pp_beschreibung','$pp_kat','$pp_logo','$pp_anmelden','$pp_listen')";

    Zum Testen kannst Du das ja mal direkt über PHPMYAdmin eingeben! Syntaktisch ist das nämlich korrekt.

    MfG. Andreas

    Bonne chance
    Stefan

  5. Hallo,

    $sql = "insert into programm (id,name,link,beschreibung,kategorie,logo,anmelden,on)";

    $sql.= " values ...
            ^
    Grüße

    Tom