Datenbankabfrage über Formularfeld

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

  • Datenbankabfrage über Formularfeld

    Hallo,

    wo gibt es eine detallierte Erklärung oder Tutorial wie man über Formuarfeld einen Datenbankabfrage durchführen kann.

    Vielen Dank

  • #2
    Hm, ich versteh jetzt nicht genau was du willst....


    Das läuft eigentlich immer so ab:

    User gibt was ins Formular ein -> schickt ab -> Daten werden an ein Script geleitet -> Script verarbeitet Daten, fragt evtl. die Datenbank ab -> vllt. gibts was aus oder trägt was in die DB ein, kommt halt drauf an....


    sry, hab aber das Problem von dir nicht genau verstanden....
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Hallo,

      Ich möchte mir eine Adressen und Telefonlisten verwaltung erstellen, habe bereits ein kleines Code zu geschrieben der funktioniert leider nicht .
      Ich dachte ein kleines Einführung zum nachlesen würde mir helfen.
      Da ich ein Anfänger bin, habe ich überhaupt kein Plan.

      Hier mein Code:

      PHP-Code:
      <?
      include 'config.php';

      mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
      mysql_select_db(MYSQL_DATABASE);

      echo"
       <form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
        Nachname eingeben:<br><br>
       <input type=Text name=nachname size=10 maxlength=30>
       <input type=Submit name=abfragen value=Suche>
       </form>";
       
      $query =$_POST[nachname];
      $query .="SELECT nachname FROM telefonliste";
      $ergebnis = mysql_query($query);
        while($row = mysql_fetch_object($ergebnis))
          {
          echo " Ergebnis: ."$row->nachname".";
          }
      ?>
      Zuletzt geändert von Hennil; 30.05.2004, 16:42.

      Kommentar


      • #4
        PHP-Code:
        echo"
         <form method=\"post\" action=\""
        .$_SERVER['PHP_SELF']."\">
          Nachname eingeben:<br><br>
         <input type=Text name=nachname size=10 maxlength=30>
         <input type=Submit name=abfragen value=Suche>
         </form>"
        ;
         
        $query ="SELECT nachname FROM telefonliste WHERE nachname='".$_POST['nachname']."'";
        $ergebnis mysql_query($query);
          while(
        $row mysql_fetch_object($ergebnis))
            {
            echo 
        " Ergebnis: ".$row->nachname;
            }
        ?> 
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          Hallo,

          vielen Dank..

          Jetzt werde ich versuchen es zu erweitern ,bei eingabe der Nachname sollen alle Informationen wie Vorname,Geb.Datum etc. ausgegeben werden.

          Kommentar


          • #6
            Hallo,

            asugabe von allen Felder funktioniert..

            PHP-Code:

            <?
            include 'config.php';

            mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
            mysql_select_db(MYSQL_DATABASE);

            echo"
             <form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
              TELEFONBUCH<br>
              Abfrage funktioniert nur über Nachname
              <br><br>
             <input type=Text name=nachname size=10 maxlength=30>
             <input type=Submit name=abfragen value=Suche>
             </form>";

            $query ="SELECT * FROM telefonliste WHERE nachname='".$_POST['nachname']."'";
            $ergebnis = mysql_query($query);

             echo "<table>\n";
               while ($row = mysql_fetch_assoc ($ergebnis)) {

                echo "<tr><td>Vorname:\n";
                echo $row["Vorname"];
                echo "</td></tr>\n";
                echo "<tr><td>Nachname:\n";
                echo $row["Nachname"];
                echo "</td></tr>\n";
                echo "<tr><td>Ort:\n";
                echo $row["Ort"];
                echo "</td></tr>\n";
                echo "<tr><td>PLZ:\n";
                echo $row["PLZ"];
                echo "</td></tr>\n";
                echo "<tr><td>Straße:\n";
                echo $row["Straße"];
                echo "</td></tr>\n";
                echo "<tr><td>Telefonnummer:\n";
                echo $row["Telefonnummer"];
                echo "</td></tr>\n";
                echo "</table>\n";
                }

            ?>

            Wie kann ich ein Fehlermeldung erzeugen wenn angegebene Nachname im Datenbank nicht vorhanden ist ??
            Ist das mit if-Schleife möglich ??

            Kommentar


            • #7
              Hallo,

              habe es mit if versucht klappt nicht

              PHP-Code:
              $query ="SELECT * FROM telefonliste WHERE nachname='".$_POST['nachname']."'";
              $ergebnis mysql_query($query);

               echo 
              "<table>\n";
                 while (
              $row mysql_fetch_assoc ($ergebnis)) {
                      if (
              $ergebnis 0); {
                     echo
              "Kein Eintrag mit ".$_POST['nachname']." vorhanden";
              } else
                  echo 
              "<tr><td>Vorname:\n";
                  echo 
              $row["Vorname"];
                  echo 
              "</td></tr>\n";
                  echo 
              "<tr><td>Nachname:\n";
                  echo 
              $row["Nachname"];
                  echo 
              "</td></tr>\n";
                  echo 
              "<tr><td>Ort:\n";
                  echo 
              $row["Ort"];
                  echo 
              "</td></tr>\n";
                  echo 
              "<tr><td>PLZ:\n";
                  echo 
              $row["PLZ"];
                  echo 
              "</td></tr>\n";
                  echo 
              "<tr><td>Straße:\n";
                  echo 
              $row["Straße"];
                  echo 
              "</td></tr>\n";
                  echo 
              "<tr><td>Telefonnummer:\n";
                  echo 
              $row["Telefonnummer"];
                  echo 
              "</td></tr>\n";
                  echo 
              "</table>\n";
                  } 

              Kommentar


              • #8
                mysql_num_rows()

                könnte hier dein freund sein

                Kommentar


                • #9
                  Außerdem:

                  1. Bei einer If abfrage immer == oder === benutzen, = ergibt immer true

                  2. Nach einem If gibt es kein ;
                  PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                  Kommentar


                  • #10
                    Hmm...

                    also ich würd das auch mit mysql_num_rows() machen, so wie oben schon erwähnt... würde dann so aussehen:

                    PHP-Code:
                    $query ="SELECT * FROM telefonliste WHERE nachname='".$_POST['nachname']."'";
                    $ergebnis mysql_query($query);

                     echo 
                    "<table>\n";
                       while (
                    $row mysql_fetch_assoc ($ergebnis)) {
                            if (
                    mysql_num_rows($ergebnis) == 0) {
                           echo
                    "Kein Eintrag mit ".$_POST['nachname']." vorhanden";
                           } 
                          else { 
                    // hier darfst du die Klammer nicht vergessen....

                         // Ich kürze hier mal....
                        // Ein "echo" reicht übrigens auch... ist übersichtlicher!
                        

                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      Hallo,

                      vielen Dank für die vielen Hilfreichen Tips.

                      @Shurakai

                      habe es so übernommen wie du es beschrieben hast
                      es tut sich nichts
                      PHP-Code:

                       
                      echo "<table>\n";
                         while (
                      $row mysql_fetch_assoc ($ergebnis)) {
                              if (
                      mysql_num_rows($ergebnis) == 0) {
                             echo
                      "Kein Eintrag mit ".$_POST['nachname']." vorhanden";
                             }
                            else {

                          echo 
                      "<tr><td>Vorname:\n";
                          .
                          .
                          . 
                        }

                      Hier kann man es testen

                      Kommentar


                      • #12
                        servus;

                        dein script würde ich soweit abändern, das die while schleife in die if abfrage kommt -> nur einmaliger durchlauf der if abfrage am anfang.

                        mal getestet, was

                        echo mysql_num_rows($ergebnis);

                        ausgibt?

                        bzw. mal ein

                        echo $_POST['nachname'];

                        eingebaut? irgendwie verwirrt mich deine testseite, da eigentlich ncihts passiert.

                        Kommentar


                        • #13
                          Hallo,

                          als nachname "Test" eingeben dann gibt er was aus.

                          echo mysql_num_rows($ergebnis);

                          habe ich ausprobiert, es tut sich nichts..

                          Kommentar


                          • #14
                            Original geschrieben von Hennil
                            Hallo,

                            als nachname "Test" eingeben dann gibt er was aus.

                            echo mysql_num_rows($ergebnis);

                            habe ich ausprobiert, es tut sich nichts..
                            Da tut sich NICHTS oder da kommt 0?

                            Wenn sich da wirklich NICHTS tut, dann mach mal:

                            PHP-Code:
                            echo mysql_error(); 
                            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                            var_dump(), print_r(), debug_backtrace und echo.
                            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                            Kommentar

                            Lädt...
                            X