mySQL mit PHP ansprechen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mySQL mit PHP ansprechen

    Hi,

    wie spreche ich mittels der COM-Schnittstelle und PHP eine mySQL-DB an, um Werte auszulesen???

    Etwas Code zum Verständnis wäre schön.

    Danke.

  • #2
    Wofür brauchst du da COM?! O.o

    http://de2.php.net/mysql

    Kommentar


    • #3
      Na eben... ist mir auch grade durch den Kopf geschossen!!!

      Jo, danke für den Link - das ist spitze.

      Bye.

      Kommentar


      • #4
        formular reagiert nicht

        Folgendes Formular lässt sich nicht in der MySQL Datenbank speichern:
        Wenn ich bei phpMyAdmin etwas in die Tabelle eintrage funktioniert alles perfekt!

        Hier der Code für guestbook.php

        PHP-Code:
        <html>
        <head>
               <title>Gaestebuch</title>
        </head>
        <body>
        <div style="width: 600px">
        <form action="<?php echo $_SERVER['PHP_SELF'] ;?>" method="post">
        Dein <b>Name:</b>:<br>
        <input type="text" name="Name"><br>
        Deine <strong>Homepage</strong> oder E-Mail:<br>
        <input type="text" name="Home"><br>
        Deine Botschaft:<br>
        <textarea cols="55" rows="4" wrap="soft" name="Kommentar">
        </textarea><br>
        <input type="hidden" name="uw" value="<?php echo time(); ?>">
        <input type="submit" value="Eintrag abschicken!">
        </form>
        <h3>Bisherige Eintrgäe:</h3>
        <?php
        include("function.inc.php");
        $unique=no_reload();

        $start=0// Startwert setzen (0 = 1. Zeile)
        $step=4;  // Wie viele Einträge gleichzeitig?
        //Startwert verändern:
        if (isset($_GET["start"])) {
            
        $start=$_GET["start"];
        }
        $nr=$start+1;

        include(
        "zugriff.inc.php");

        if (!empty(
        $_POST["Name"]) && !empty($_POST["Home"])
        && !empty(
        $_POST["Kommentar"]) && !$unique) {
        $datum =date("d.m.Y - H:i") . " Uhr";
        $sql="INSERT INTO guestbook " .
        "VALUES ('', '$_POST[Name]', '$_POST[Home]', " .
        "'$datum', '$_POST[Kommentar]')";
        mysql_query($sql);
        }

        $sql1="SELECT * FROM guestbook";
        $sql2="SELECT * FROM guestbook ORDER BY id DESC LIMIT $start$step";
        $result1=mysql_query($sql1);
        $zeilen=mysql_num_rows($result1);
        $result2=mysql_query($sql2);

        for (
        $i=0;$zeilen>$i;$i=$i+$step) {
            
        $anf=$i+1;
            
        $end=$i+$step;
            if (
        $end>$zeilen) {
                
        $end=$zeilen;
            }
            if (
        $anf==$end) {

            echo 
        "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$end</a> ] ";
        }
        else {
            echo 
        "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$anf-$end</a> ] ";
        }
        }


        echo 
        "<p>Anzahl der Einträge: $zeilen</p>\n";
        //while schleife Anfang
        while ($row=mysql_fetch_assoc($result2)) {
            echo 
        "<p><strong>$nr.</strong> " .
            
        " <b>" htmlspecialchars($row["Name"]) . "</b> " .
            
        "(" htmlspecialchars($row["Home"]) .
            
        ")<br>--&gt; schrieb am " .
            
        "<strong>" $row["Datum"] . "</strong>:" .
            
        "<p>" nl2br(htmlspecialchars($row["Kommentar"])) . "</p><hr>\n";
        $nr++;
        // while schleife Ende
        mysql_close();
        ?>
        </div>
        </body>
        </html>
        Hier der Code für zugriff.inc.php

        PHP-Code:
        <?php
        @mysql_connect("localhost","root","test") or die("Verbindung zu MySQL fehlgeschlagen!");
        @
        mysql_select_db("team") or die("Datenbankzugriff fehlgeschlagen!");
        ?>
        Hier der Code für function.inc.php

        PHP-Code:
        <?php
        function no_reload() {
            
        $gleichheit="false";
            if(isset(
        $_POST["uw"])) {
                
        $datei="unique.txt";
                
        $fp=fopen($datei"r+");
                
        $aw=fgets($fp,30);
                if(
        $aw==$_POST["uw"]) {
                    
        $gleichheit="true";
                }
                
        rewind($fp);
                
        fputs($fp,$_POST["uw"]);
                
        fclose($fp);
            }
            return 
        $gleichheit;
        }
        ?>
        Ich bedanke mich schon mal im Vorraus!
        MFG lSTEVEl

        Kommentar


        • #5
          Moin,

          Auf den ersten Blick ist mir aufgefallen, dass dein Datum das falsche Format hat, falls dein Datenbankfeld den Datentyp date hat.
          Das richtige Format wäre dann: YYYY-MM-DD

          Gruß Thomas


          €: Schau dir mal dein Query an:
          Code:
          $sql="INSERT INTO guestbook " ."VALUES ('', '$_POST[Name]', '$_POST[Home]', " ."'$datum', '$_POST[Kommentar]')";
          Sollte das nicht sowas sein:
          Code:
          $sql="INSERT INTO guestbook (leer,name,home,datum,kommentar) VALUES ('', '$_POST[Name]', '$_POST[Home]', '$datum', '$_POST[Kommentar]')";
          Wenn leer bei dir die auto_increment id ist, dann entferne das und deinen leeren String in der values Klammer.
          Zuletzt geändert von Alrik; 31.01.2006, 17:49.

          Kommentar


          • #6
            Folgendes ist fehleranfällig:
            PHP-Code:
            $_POST[Name
            Besser wäre:
            PHP-Code:
            $_POST['Name'

            Kommentar


            • #7
              Also so wie ich den QUERY geschrieben hab, so stand er auch im Buch.
              Ich habs auch schon vorher mal auf Thomas seine (eigentlich normale Art) versucht, leider auch ohne Erfolg.
              In der MySQL ist der Felddatentyp VARCHAR und nicht wie fürs Datum typisch DATE, da ich das Format nach meinen Wünschen, also z.B.: 31.02.2006 ausgeben will.

              Das Problem mit den Klammern dürfe auch nicht sein, weil ja schon bei $sql=" " diese gesetzt worden sind.

              Leider funktioniert das Speichern in die Datenbank noch immer nicht!

              Gruß lSTEVEl

              Kommentar


              • #8
                Das Problem mit den Klammern dürfe auch nicht sein, weil ja schon bei $sql=" " diese gesetzt worden sind.
                Was macht das für einen Sinn?
                Bekommst du denn eine Fehlermeldung oder dergleichen?
                PHP-Code:
                mysql_query($sql) or die("Error: "mysql_error()); 
                Wenn dein Datumsfeld vom Typ date ist, kannst du auch aus 2006-12-31 auch 31.12.2006 machen beim auslesen.
                PHP-Code:
                $datum "2006-12-31";
                echo 
                date("d.m.Y"strtotime($datum)); 

                Kommentar


                • #9
                  Prüfe, ob du wirklich nur soviele Felder in die DB eintragen möchtest, wie drin stehen.
                  Prüfe, ob du die Feldnamen in der Query richtig geschrieben hast.
                  Prüfe, ob alle Werte wie erwartet gesetzt sind (Stichwort: print_r())

                  Zeige den aktuellen Code des Query.

                  Und wie Reallife schon sagte: Die einfachen Anführungszeichen sollten auch um dem Schlüssel des Array stehen.

                  Kommentar


                  • #10
                    Es wird kein einziger Fehler angezeigt!
                    Das Formular verschickt sich nur an sich selbst und dabei passiert aber nichts.
                    Es wird auch jetzt mit dem Fehlertest bei mysql_query($sql) or die("Error: " . mysql_error()); nichts angezeigt.

                    Also ich habe id mit auto_increment!Auch noch Name, Home, Datum und Kommentar als Felder, auch in der DB sind diese eingetragen.
                    Feldnamen sind richtig geschrieben, sie beginnen mit großem Buchstaben wie auch in der MySQL.

                    Hat das Script schon jemand selber getestet?

                    Kommentar


                    • #11
                      Dann sollte das richtig sein:
                      PHP-Code:
                      $sql="INSERT INTO guestbook (Name,Home,Datum,Kommentar) VALUES ('".$_POST['Name']."', '".$_POST['Home']."', '".$datum."', '".$_POST['Kommentar']."')"

                      Kommentar


                      • #12
                        error reporting an? wie sieht dein post-array aus? (sprich: steht nach absenden des formulares auch etwas drinne...)
                        muss man dir alles vorkauen oder kannst du auch selber lesen/denken?

                        Kommentar


                        • #13
                          Danke für die nette Hilfe

                          @reallife: Ich glaube es nützt keinem was, wenn du hier den großen Programmierer spielst und unfreundlich wirkst.

                          Schließlich bin ich hier in einem Forum wo man Hilfe bekommt!
                          Ich spreche die Leute nicht an ob sie mir helfen, ich warte nur darauf bis mir jemand antwortet.
                          Derjenige der dies tut, macht es freiwillig und braucht sich nicht beklagen oder mir Vorwürfe zu machen, wenn mal ein Problem schwieriger zu lösen scheint. Ich bin jedem sehr dankbar der mir weiterhilft und wer glaubt hier nur umsonst zu posten, der soll es lieber sein lassen.
                          Danke reallife, ich glaube auch andere können mir weiter helfen.
                          Dein Teil ist getan, schließlich möchte ich hier nicht diskutieren warum und wieso ich Hilfe benötige, sondern eher über mein Problem im Script reden!

                          Für die anderen, netteren Poster und Helfer:

                          Mein ganzes Script welches ich habe ist ganz am ANFANG, also muss man mir nicht alles vorkauen, ich kann auch selber denken Vlt. kopiert jemand mal die Inhalte und testet sie am eigenen Server, offline oder sogar online?!?

                          Mit freundlichem Gruß

                          lSTEVEl
                          Zuletzt geändert von lstevel; 31.01.2006, 20:06.

                          Kommentar


                          • #14
                            @reallife: Ich glaube es nützt keinem was, wenn du hier den großen Programmierer spielst und unfreundlich wirkst.

                            Schließlich bin ich hier in einem Forum wo man Hilfe bekommt!
                            Ich spreche die Leute nicht an ob sie mir helfen, ich warte nur darauf bis mir jemand antwortet.
                            Derjenige der dies tut, macht es freiwillig und braucht sich nicht beklagen oder mir Vorwürfe zu machen, wenn mal ein Problem schwieriger zu lösen scheint. Ich bin jedem sehr dankbar der mir weiterhilft und wer glaubt hier nur umsonst zu posten, der soll es lieber sein lassen.
                            Danke reallife, ich glaube auch andere können mir weiter helfen.
                            Dein Teil ist getan, schließlich möchte ich hier nicht diskutieren warum und wieso ich Hilfe benötige, sondern eher über mein Problem im Script reden!
                            Unwissenheit schützt nicht vor Dummheit. Hast du dir mal folgende Threads durchgelesen?
                            http://www.php-resource.de/forum/sho...threadid=50454
                            http://www.php-resource.de/forum/sho...threadid=14817
                            Über Fehler macht es auch nur dann Sinn zu reden, wenn von dir selber Lösungsvorschläge kommen, kommen da welche?
                            Ich hab keine gesehen.. ok ich halte mich da raus. Aber wenn du lösungsvorschläge auch nicht wahr nimmst, dann kann man dir auch nicht weiterhelfen.

                            Kommentar


                            • #15
                              Danke für die schwache Ausrede noch zum Schluss, denn das mit der Unwissenheit trifft auf meinen Eintrag ganz sicher nicht zu.

                              Nochmals zur Wiederholung:

                              1. Ich habe gesagt was mein Problem ist:
                              [COLOR=orange]Daten werden nicht über PHP in die MySQL DB übertragen und beim Senden des Formulares sendet die Seite sich nur an sich selbst und es passiert nichts![/COLOR]

                              2. Ich habe mehrere Versionen benutzt um es selber zu versuchen:
                              [COLOR=orange]Da keine Fehlermeldungen kommen, suche ich nun Rat von anderen, die evtl. das Script auf dem eigenen Rechner/Server testen.[/COLOR]

                              3. Es macht Sinn über mein Thema zu reden:
                              [COLOR=orange]Ich habe gesagt was bei meinem Problem zu lösen ist, sprich das Senden zur MySQL DB! Ich habe Auskünfte darüber gegeben, wie meine DB-FELDER in der MySQL eingetragen sind, usw, etc. ...[/COLOR]

                              Kommentar

                              Lädt...
                              X