Ankündigung

Einklappen
Keine Ankündigung bisher.

mit php Daten in SQL-Dantebank einfügen

Einklappen

Neue Werbung 2019

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

  • mit php Daten in SQL-Dantebank einfügen

    Hallo,
    ich habe mich heute schon seit Stunden mit folgendem Problem rumgeschlagen:

    Ich will mit einem php-Programm ein Formular erstellen, mit dem man Daten in eine mysql-Datenbank einfügen kann.

    So sieht mein Code aus:

    <html>
    <head><title> DATENBANK </title>

    <?php
    if (isset($_POST["gesendet"]))
    {

    mysql_connect("","root");
    mysql_select_db("AEMessdatenbank");

    $sqlab = "insert aemessdatenbank.projekt";
    $sqlab .= "(Projektnummer, Projektname, Link zum Angebot, Auftraggeber) values ";
    $sqlab .= "(" . $_POST["nummer"] . ", ";
    $sqlab .= "'" . $_POST["nome"] . "', ";
    $sqlab .= "'" . $_POST["angebotlink"] . "', ";
    $sqlab .= "'" . $_POST["auftraggeber"] . "')";

    mysql_query($sqlab);

    $num=mysql_affected_rows();
    if ($num>0)
    {
    echo "<font color='#00aa00'>";
    echo "Es wurde ein Projekt hinzugefügt<p>";
    echo "</font>";
    }
    else
    {
    echo "<font color='#ff0000'>";
    echo "Es ist ein Fehler aufgetreten, es wurde kein Projekt hinzugefügt<p>";
    echo "</font>";
    }
    }

    ?>


    </head>

    <body>
    Tragen Sie bitte das Projekt ein<br> und senden Sie das Formular ab.


    <form action="Datei5.php" method="post">
    <input name="nummer"> Projektnummer<p>
    <input name="nome"> Projektname<p>
    <input name="angebotlink"> Link zum Angebot<p>
    <input name="auftraggeber"> Auftraggeber<p>
    <input type="submit" name="gesendet">
    <input type="reset">
    </form>

    </body>
    </html>




    Das Formular erschein auf dem Bildschirm, aber es kommt immer die Meldung, dass keine Daten eingetragen wurden, und es werden auch tatsächlich keine in die Tabelle übertragen.

    Ich bin für jede Hilfe dankbar!
    Viele Grüße
    Kerstin

  • #2
    Wo werden die Daten in die Datenbank geschrieben???

    Und verwende doch bitte die [php] tags (man kann es besser lesen)

    PHP-Code:
    $sql="INSERT INTO tenside_news 
            (datum, headline, link, news) 
                VALUES
            ('
    $datum', '$name', '$link', '$news')";            
            
            
        
    mysql_query($sql); 
    das ist ein kleiner ausschnitt aus einem meiner scripte. Die Variablen kommen bei mir auch aus einem formular.

    Kommentar


    • #3
      "INSERT INTO", du hast das into vergessen.

      Kommentar


      • #4
        Vielen Dank für eure schnellen Antworten!

        Wie ist die Frage gemeint, wo die Daten in die Datenbank geschrieben werden? Also es ist ein webserver installiert und es soll so sein, dass die verschiedenen Benutzer einfach das Formular aufrufen und darüber die Daten dann in die Datenbank eingetragen werden.

        Ich habe meinen Code jetzt ein bisschen geändert;
        jetzt sieht er so aus:
        (Ich habe leider keiner Ahnung, wie man [php] tags verwendet...)
        <html>
        <head>
        <title> AE MESSDATENBANK </title>

        <?php

        if (isset($_POST["gesendet"]))
        {

        mysql_connect("localhost", "root", "")
        or die("Unable to connect to mysql");

        mysql_select_db("AEMessdatenbank")
        or die("Unable to connect to database");


        $prnr=$_POST["nummer"];
        $prname=$_POST["nome"];
        $link=$_POST["angebotlink"];
        $ageber=$_POST["auftraggeber"];

        $sql="INSERT INTO projekt
        (Projektnummer, Projektname, Link zum Angebot, Auftraggeber)
        VALUES
        ('$prnr', '$prname', '$link', '$ageber')";

        mysql_query($sql)
        or die("Unable to write into mysql");

        $num=mysql_affected_rows();
        if ($num>0)
        {
        echo "<font color='#00aa00'>";
        echo "Es wurde ein Projekt hinzugefügt<p>";
        echo "</font>";
        }
        else
        {
        echo "<font color='#ff0000'>";
        echo "Es ist ein Fehler aufgetreten, es wurde kein Projekt hinzugefügt<p>";
        echo "</font>";
        }

        }

        ?>
        </head>

        ...bei "body" habe ich nichts verändert.

        Ich bekomme jetzt immer "Unable to write into mysql"...und ich habe leider nicht die geringste Ahnung, woran das liegen kann. Kann mir irgendjemand helfen??

        Kommentar


        • #5
          Dann mach mal folgendes: die("Unable to write into mysql. error: ".mysql_error());

          Dann siehst du was genau MySQL als Fehler zurückgibt.

          Kommentar


          • #6
            Als erstes solltest du mal die Forumsregeln lesen. PHP-Tags setzt man, indem man das PHP-Icon direkt über dem Eingabefeld benutzt oder den Code zwischen [php\] und [/php] setzt (natürlich ohne den Backslash, der ist nur hier, dmit die Tags hier nicht interpretiert werden).
            Was dein PHP-Code im HEAD-Teil von HTML suchen, das wissen wahrscheinlich nicht mal die Götter.
            Das eigentliche Problem ist aber wahrscheinlich der Attributname »Link zum Angebot», der vermutlich in Backticks (`) gesetzt werden müsste. Besser wäre allerdings, einen vernünftigen Namen zu wählen.

            Kommentar


            • #7
              Vielen Dank!!! Es war ein Syntax-error... ich hab jetzt den Befehl aus phpMyAdmin kopiert und jetzt funktioniert´s...hatte das zwar auch schon einige Male gemacht, aber da war wohl dann immer noch was anderes falsch...

              Kommentar


              • #8
                Ja die Spaltennamen können keine Leerzeichen enthalten, habe gerade gesehen dass du solche hast in deinem Query.

                Kommentar


                • #9
                  Zitat von Mysteri Beitrag anzeigen
                  Ja die Spaltennamen können keine Leerzeichen enthalten, habe gerade gesehen dass du solche hast in deinem Query.
                  können schon, nur dann müssen die von backticks umschlossen werden und wenn er das aus phpMyAdmin kopiert sind die gleich dabei

                  Kommentar


                  • #10
                    Mh OK, ich habe sie von Anfang an eh immer vermeidet ...

                    Kommentar


                    • #11
                      Zitat von Mysteri Beitrag anzeigen
                      Ja die Spaltennamen können keine Leerzeichen enthalten, habe gerade gesehen dass du solche hast in deinem Query.
                      Das stimmt so nicht:
                      Zitat von MySQL-Handbuch
                      (Erlabt ist) Jedes Zeichen, das in einem Verzeichnisnamen zulässig ist. Ausgenommen sind ‘/’, ‘\’ und ‘.’

                      aber es ist besser, wenn man es nicht verwendet

                      Kommentar


                      • #12
                        Zitat von lazydog Beitrag anzeigen
                        aber es ist besser, wenn es nicht verwendet
                        Ja hab ja eben geschrieben, dass ich sie von Anfang an immer vermeidet habe, warscheinlich habe ich dann verdrängt dass sie eigentlich erlaubt sind, zur eigenen Sicherheit :P

                        Kommentar


                        • #13
                          Falls die Frage noch nicht beantwortet wurde...
                          Was mir als erstes auffällt:

                          Dein mysql_connent sieht etwas komisch aus...

                          Aus php.net:

                          PHP-Code:
                          mysql_connect('localhost''mysql_user''mysql_password'); 

                          Kommentar

                          Lädt...
                          X