Problem Datenbankzugriff mit PHP

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

  • #16
    hy Sonne,

    du müsstest mir schon genauer schreiben, was Du machen willst.

    Im Grunde läuft es ungefähr so ab:


    Du hast ein Formular in HTML erschaffen. Die Input-Felder
    erhalten einen Namen. Über diesen Namen kannst Du auf
    die Inhalte zugreifen. Das ganze muss aber im php-Bereich stehen.

    so z.B.

    ...

    <body>
    <form action="datei.php" method="POST">

    <table>
    <?php

    echo "<tr><td>Name</td><td><input type=\"text\" name=\"vorname\"></td></tr>
    ...

    ?>

    <td><input type="submit" value="ok"></td>

    </table>

    </form>
    ...

    In Deinem Script datei.php (kann auch das gleiche Script sein)
    machst Du folgendes:

    $host="localhost";
    $user="markus";
    $passwort="123";
    $dbname="Formular";

    $verbindung=mysql_connect($host,$user,$passwort);

    if ($verbindung)
    {
    if(!mysql_select_db($dbname, $verbindung))
    {
    echo "Datenbank $dbname konnte nicht ausgewaehlt werden<br>\n";
    echo mysql_errno().":".mysql.error()."<br>\n";
    }
    else
    {
    InsertDaten($vorname, $verbindung);
    mysql_close();
    }
    }
    else
    {
    echo "keine datenverbindung möglich<br>\n";
    echo mysql_errno().":".mysql_error()."<br>\n";
    }


    function InsertDaten($vorname, $verbindung)
    {
    $query="Insert into Tabellenname (Spaltenname) VALUES Spaltenname=\"$vorname\"";
    mysql_query($query, $verbindung);
    }




    pseo

    Kommentar


    • #17
      Soll ich dir mal meinen HTML Code zukommen lassen?

      Kommentar


      • #18
        hy Sonne,

        dem Ziel ein Stückchen näher:

        <?

        $host="localhost";
        $user="markus";
        $passwort="123";
        $dbname="Formular";

        $verbindung=mysql_connect($host,$user,$passwort);

        if ($verbindung)
        {
        if(!mysql_select_db($dbname, $verbindung))
        {
        echo "Datenbank $dbname konnte nicht ausgewaehlt werden<br>\n";
        echo mysql_errno().":".mysql.error()."<br>\n";
        }
        else
        {
        zeigeDaten($verbindung);
        mysql_close();
        }
        }
        else
        {
        echo "keine datenverbindung möglich<br>\n";
        echo mysql_errno().":".mysql_error()."<br>\n";
        }

        //host brauchst Du doch nicht abfragen, ist doch von Dir gesetzt



        function zeigeDaten($verbindung)
        {

        $query="SELECT * FROM gaeste";

        $result=mysql_query($query, $verbindung);

        while ($zeile = mysql_fetch_row($result))
        {
        echo "$zeile[0], $zeile[1]"; //zB.
        }

        }
        ?>

        Ich denke, jetzt müsste es gehen.


        pseo

        Kommentar


        • #19
          hallo Sonne,

          wieso, meinst Du, da is was nich in Ordnung?

          Kannst Du, wenn Du willst.


          pseo

          Kommentar


          • #20
            nee, aber ich weis nicht mehr weiter. Es klingt alles logisch.
            <html>
            <head>
            <title>Formulareingaben &uuml;berpr&uuml;fen</title>
            <script type="text/javascript">
            <!--
            function chaFormular()
            {
            if(document.Formular.vorname.value == "")
            {
            alert("Bitte geben Sie Ihren Vornamen ein!");
            document.Formular.vorname.focus();
            return false;
            }
            if(document.Formular.vorname.value == "")
            {
            alert("Bitte geben Sie ihren Vornamen ein!");
            document.Formular.vorname.focus();
            return false;
            }

            if(document.Formular.nachname.value == "")
            {
            alert("Bitte geben Sie Ihren Nachnamen ein!");
            document.Formular.nachname.focus();
            return false;
            }
            if(document.Formular.nachname.value == "")
            {
            alert("Bitte geben Sie ihren Nachnamen ein!");
            document.Formular.nachname.focus();
            return false;
            }

            if(document.Formular.strasse.value == "")
            {
            alert("Bitte geben Sie Ihre Strasse ein!");
            document.Formular.strasse.focus();
            return false;
            }
            if(document.Formular.strasse.value == "")
            {
            alert("Bitte geben Sie ihre Strasse ein!");
            document.Formular.strasse.focus();
            return false;
            }

            if(document.Formular.plz.value == "") {
            alert("Bitte Ihr PLZ eingeben!");
            document.Formular.plz.focus();
            return false;
            }
            var chkZ = 1;
            for(i=0;i<document.Formular.plz.value.length;++i)
            if(document.Formular.plz.value.charAt(i) < "0"
            || document.Formular.plz.value.charAt(i) > "9")
            chkZ = -1;
            if(chkZ == -1) {
            alert("PLZ ist keine Zahl!");
            document.Formular.plz.focus();
            return false;
            }


            if(document.Formular.ort.value == "") {
            alert("Bitte Ihr ORT eingeben!");
            document.Formular.ort.focus();
            return false;
            }
            var chkZ = 1;
            for(i=0;i<document.Formular.ort.value.length;++i)
            if(document.Formular.ort.value.charAt(i) < "A"
            || document.Formular.ort.value.charAt(i) > "Z")
            chkZ = -1;
            if(chkZ == -1) {
            alert("Bitte geben sie den richten Ort an!");
            document.Formular.ort.focus();
            return false;
            }

            if(document.Formular.Mail.value == "")
            {
            alert("Bitte geben Sie Ihre E-Mail-Adresse ein!");
            document.Formular.Mail.focus();
            return false;
            }
            if(document.Formular.Mail.value.indexOf('@') == -1)
            {
            alert("Bitte geben Sie eine gültige E-Mailadresse ein!");
            document.Formular.Mail.focus();
            return false;
            }

            if(document.Formular.frage.value == "") {
            alert("Hier haben Sie Platz für ihre Frage!");
            document.Formular.frage.focus();
            return false;
            }
            if(document.Formular.frage.value == "") {
            alert("Hier haben Sie Platz für ihre Frage!");
            document.Formular.frage.focus();
            return false;
            }
            }
            //-->
            </script>
            </head>
            <body bgcolor="#EEEEEE" text="#000000">

            <blockquote>
            <blockquote>
            <blockquote>
            <blockquote>
            <h1 align="left"><font size="4">&nbsp;&nbsp;
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <u><i><b>K o n t a k t f o r m u l a r</b></i></u></font></h1>

            </blockquote>
            </blockquote>
            </blockquote>
            </blockquote>

            <!--<form name="Formular" action="http://selfaktuell.teamone.de/cgi-bin/formview.pl" method="post"
            onSubmit="return chkFormular()"-->

            <form name="Formular" method="post" onSubmit="return chkFormular()"

            action="mailtoc-Neuhaus@gmx.de? subject=Kontaktformular"
            enctype="text/plain">


            <pre>&nbsp;</pre>


            <pre><font size="4"> <input type="checkbox" value="ON" name="C1"> </font><font color="#ff0000"><font size="4"><b>Stahlbau</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font size="4"><input type="checkbox" value="ON" name="C1"></font><font color="#ff0000"><font size="4"> <b>Metallbau</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font size="4"><input type="checkbox" value="ON" name="C1"></font><font color="#ff0000"><font size="4"> <b>Softbau</b></font> </font><font size="4"><input type="checkbox" value="ON" name="C1"> <font color="#ff0000"><b>Sonstiges</b></font></font></pre>


            <pre>&nbsp;</pre>


            <pre>
            Vorname: <input type="text" size="40" name="vorname">
            </pre>
            <pre> Nachname: <input type="text" size="40" name="nachname"></pre>
            <pre> Straße: <input type="text" size="40" name="strasse"></pre>
            <pre> PLZ: <!--webbot bot="Validation" S-Data-Type="Number"
            S-Number-Separators="x." B-Value-Required="TRUE" I-Minimum-Length="5"
            I-Maximum-Length="5" --><input type="text" size="7" name="plz" maxlength="5"> Wohnort: <input type="text" size="40" name="ort"></pre>
            <pre> E-Mail: <input type="text" size="40" name="Mail">

            <u>Ihr Anliegen:</u> </pre><pre> <textarea rows="8" name="frage" cols="49"></textarea></pre>

            <pre> <input type="submit" value="senden"> <input type="reset" value="löschen">

            </pre>
            </form>

            </body>
            </html>

            So schaut das Vormular aus, ganz einfach. D.h. ich muß jetzt eine z.B. Datei.php erstellen mit dem Inhalt von dir und diese Datei durch php in die html datei einfügen! Und das wars dann ?

            Kommentar


            • #21
              hy Sonne, uffff

              Du hast ja drei Formulare in einem Script!!!!

              Also ich würde es vermeiden, wenns zu vermeiden geht.

              1) Wozu sind die einzelnen Formulare gedacht?

              2. Wenn Du ein Formular mit get oder post verschickst, dann verschickst Du den Inhalt an die Adresse, die Du in Form angibst:
              z.B
              <form action="zieldatei.php" method="get">.

              3. Der Bereich, der Variablen oder Werte enthält, die übertragen, ausgewertet werden sollen, muessen im php-Bereich stehen.

              4. Alles, was im PHP-Bereich ausgegeben werden soll, muss mit echo ausgegeben werden (siehe unten).

              5. Hier musst Du darauf achten, wenn innerhalb Deiner echo-Ausgabe Hochkommatas stehen, diese zu maskieren, sprich
              ein backslash vor dem Hochkomma, sonst ist die Zeichenkette dort bereits beendet. Ich hab mir sagen lassen, dass es innerhalb von Zeichenketten auch mit einfachen Hochkomatas funktioniert (siehe unten).

              6. So wie ich sehe, hast Du die drei geöffneten Formulare auch nur einmal geschlossen. Die musst Du schon schliessen.

              7. Wenn Du diese Daten dann in ein anderes Script geschickt hast, dann nimm den Quellcode den ich Dir schon geschickt habe.
              Frage aber vorher Deine Variablen ab. Wenn Du z.B. fuer Deinen Insert-Befehl nur den Vorname und Nachnamen brauchst, dann frage die Variablen so ab
              ....

              if(isset($vorname) %% isset($nachname)
              {
              //nur ein Beispiel
              zeigeDaten($vorname, $nachname, $strasse, $verbindung);
              mysql_close();
              }

              ....

              8. Das mit dem Mailformular mache später. Step by Step.

              <!--<form name="Formular" action="http://selfaktuell.teamone.de/cgi-bin/formview.pl" method="post"
              onSubmit="return chkFormular()"-->

              <form name="Formular" method="post" onSubmit="return chkFormular()"

              action="mailtoc-Neuhaus@gmx.de? subject=Kontaktformular"
              enctype="text/plain">
              <pre> </pre>

              <?php



              echo "<pre><font size=\"4\"> <input type=\"checkbox\"";
              echo " value=\"ON\" name=\"C1\"> </font>";
              echo "<font color='#ff0000'><font size='4'>"; <b>Stahlbau</b></font> </font><font size="4"><input type="checkbox" value="ON" name="C1"></font><font color="#ff0000"><font size="4"> <b>Metallbau</b></font> </font><font size="4"><input type="checkbox" value="ON" name="C1"></font><font color="#ff0000"><font size="4"> <b>Softbau</b></font> </font><font size="4"><input type="checkbox" value="ON" name="C1"> <font color="#ff0000"><b>Sonstiges</b></font></font></pre>


              <pre> </pre>


              <pre>
              Vorname: <input type="text" size="40" name="vorname">
              </pre>
              <pre> Nachname: <input type="text" size="40" name="nachname"></pre>
              <pre> Straße: <input type="text" size="40" name="strasse"></pre>
              <pre> PLZ: <!--webbot bot="Validation" S-Data-Type="Number"
              S-Number-Separators="x." B-Value-Required="TRUE" I-Minimum-Length="5"
              I-Maximum-Length="5" --><input type="text" size="7" name="plz" maxlength="5"> Wohnort: <input type="text" size="40" name="ort"></pre>
              <pre> E-Mail: <input type="text" size="40" name="Mail">

              <u>Ihr Anliegen:</u> </pre><pre> <textarea rows="8" name="frage" cols="49"></textarea></pre>

              ?>

              <pre> <input type="submit" value="senden"> <input type="reset" value="löschen">

              </pre>
              </form>

              </body>
              </html>


              Dann bring erstmal Deinen Quellcode auf den Laufenden.
              Und gestalte es übersichtlicher, zB. neue Zeile in HTML
              ist gleich neue Zeile in Deinem Quellcode.

              pseo

              Kommentar


              • #22
                hier hab ich mich verschrieben!

                statt der Prozentzeichen müssen es natürlich && sein!


                if(isset($vorname) %% isset($nachname)
                {
                //nur ein Beispiel
                zeigeDaten($vorname, $nachname, $strasse, $verbindung);
                mysql_close();
                }


                pseo

                Kommentar


                • #23
                  ok, danke

                  Kommentar


                  • #24
                    hallo Sonne,

                    aller Anfang ist schwer.
                    Ich hoffe, dass ich Dir ein wenig helfen konnte.

                    Schreib mir nur noch, ob es wirklich so läuft.

                    ok?


                    pseo


                    Kommentar

                    Lädt...
                    X