Suchmaske für MySQL Datenbank

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

  • Suchmaske für MySQL Datenbank

    Wie kann ich eine Anfrage in ein Php file einbauen was als Suchmaske dienen soll welche dann meine Adressdatenbank durchsucht?

    Ich beabsichtige dem User die möglichkeit zu geben nach was er suchen will ob nun Postleitzahl oder nach Namen. Das am besten über ein Select.

    Dann ein Eingabefeld wo man natürlich was eingeben kann wonach er suchen soll.

  • #2
    DIe Select-Box:
    PHP-Code:
    <select size='1' name='suchliste'>
       <
    option value='name'>Name</option>
       <
    option value='plz'>PLZ</option>
    </
    select
    Die Abfrage
    PHP-Code:
    "SELECT * FROM ldbeierfeld WHERE ".$_POST['suchliste']." LIKE '%".$_POST['name_des_suchfeldes']."%' ORDER BY was_auch_immer ASC"
    Der Rest sollte kein Problem sein, weil Standard-Code
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Hmm ich hab jetzt folgendes:

      PHP-Code:
      <?php

      if (!eregi("modules.php"$_SERVER['PHP_SELF'])) {
          die (
      "You can't access this file directly...");
      }
      $module_name basename(dirname(__FILE__));
      require(
      "modules/Forums/nukebb.php");
      $index=1;




        
      mysql_connect("217.**.***.**","username","kennwort");
        
      mysql_select_db("DBName");

        
      $abfrage "SELECT * FROM nuke_search WHERE ".$_POST['suchliste']." LIKE '%".$_POST['name']."%' ORDER BY Firma1 ASC";
      ?>
      Und dann kommt das Select Modul. Aber ich hab ja keinen Ort es anzeigen zu lassen da ich nich weiß wie man etwas ausgibt.

      Wenn ich bereits eine Ausgabe in ner tabelle hätte dann würde das mit dem Select dazu führen das es das sortiert nehm ich an!?!

      Kommentar


      • #4
        Du must die Abfrage aber noch ausführen:
        PHP-Code:
           $res mysql_query($abfrage) or die(mysql_error());
           
        $num mysql_num_rows($res); 
        Die Ausgabe:
        PHP-Code:
        <table>
        <tr>
        <th width='250' valign='top'>Name</th>
        <th width='200' valign='top'>PLZ</th>
        </tr>

        <?php
           
        for ($i=0$i<$num$i++)
           {
           
        // Ergebnis den Variablen zuweisen
           
        $name mysql_result($res$i"name");
           
        $plz mysql_result($res$i"plz");
           
           
        // Die einzelnen Suchergebnisse ausgeben
           
        echo "<tr>";
           echo 
        "<td valign='top'>$name</td>";
           echo 
        "<td valign='top'>$plz</td>";
           echo 
        "</tr>";
           }
        ?>
        </table>
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          Hmm also irgendwie hört hier wohl mein wissen auf:

          es kommt folgende Fehlermeldung:

          You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%' ORDER BY Firma1 ASC' at line 1

          Kommentar


          • #6
            Original geschrieben von rookie51
            near 'LIKE '%%'
            wie du siehst, steht zwischen den %-zeichen gar kein wert.

            überprüfe also, warum die variable nicht übergeben wird.


            (btw: wo sollte $_POST['name'] auch herkommen? hast du in deinem formular überhaupt eine element mit diesem namen?)
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ok weil das ganze jetzt hier etwas undurchschaubar wird mal das ganze übersichtlich:

              PHP-Code:
              <?php

              if (!eregi("modules.php"$_SERVER['PHP_SELF'])) {
                  die (
              "You can't access this file directly...");
              }
              $module_name basename(dirname(__FILE__));
              require(
              "modules/Forums/nukebb.php");
              $index=1;




                
              mysql_connect("Localhost","username","passwort");
                
              mysql_select_db("DBName");

                
              $abfrage "SELECT * FROM nuke_search WHERE ".$_POST['suchliste']." LIKE '%".$_POST['name']."%' ORDER BY Firma1 ASC";
                
              $ergebnis mysql_query($abfrage);
                
              $res mysql_query($abfrage) or die(mysql_error());
                 
              $num mysql_num_rows($res);



              ?>

              <select size='1' name='suchliste'>
                 <option value='name'>Name</option>
                 <option value='plz'>PLZ</option>
              </select>
              <input type='text' name='name'>
              <input type='submit' value='Suchen' name='Suchen'>


              <table>
              <tr>
              <th width='250' valign='top'>Name</th>
              <th width='200' valign='top'>PLZ</th>
              </tr>

              <?php
                 
              for ($i=0$i<$num$i++)
                 {

                 
              $name mysql_result($res$i"name");
                 
              $plz mysql_result($res$i"plz");

                 echo 
              "<tr>";
                 echo 
              "<td valign='top'>$name</td>";
                 echo 
              "<td valign='top'>$plz</td>";
                 echo 
              "</tr>";
                 }
              ?>
              </table>
              Ok!?

              Kommentar


              • #8
                Du musst schon das ganze in ein Formular packen, sonst wird nichts versendet.
                Also so:
                PHP-Code:
                <form action="dateiname_dieser_datei.php" method="post" name="suchformular">
                <
                select size='1' name='suchliste'>
                   <
                option value='name'>Name</option>
                   <
                option value='plz'>PLZ</option>
                </
                select>
                <
                input type='text' name='name'>
                <
                input type='submit' value='Suchen' name='Suchen'>
                </
                form
                it's not a bug,
                it's a feature!

                Kommentar


                • #9
                  Original geschrieben von XGremliN
                  Du musst schon das ganze in ein Formular packen, sonst wird nichts versendet.
                  Also so:
                  PHP-Code:
                  <form action="dateiname_dieser_datei.php" method="post" name="suchformular">
                  <
                  select size='1' name='suchliste'>
                     <
                  option value='name'>Name</option>
                     <
                  option value='plz'>PLZ</option>
                  </
                  select>
                  <
                  input type='text' name='name'>
                  <
                  input type='submit' value='Suchen' name='Suchen'>
                  </
                  form

                  Ja stimmt...mein Fehler

                  Mal sehen was passiert

                  Kommentar


                  • #10
                    Wenn das Formular abgeschickt wurde - und NUR dann - soll gesucht werden.
                    Das kontrollierst du über ein if:
                    PHP-Code:
                    if (isset($_POST['Suchen']))
                        
                    // Ueberpruefung, ob bei der Eingabe auch wirklich der Suchen-Button
                        // gedrückt wurde, oder direkt dieses Formular geöffnet wurde
                       
                    {
                        
                    // hier deine SQL-Abfrage
                    ?> 
                    Und nach dem </table> noch die } der IF-Kontrolle schließen!
                    it's not a bug,
                    it's a feature!

                    Kommentar


                    • #11
                      Boah is das kompliziert! Hätt doch bei Html bleiben sollen.

                      Also wieder mal ein kleiner Überblick:

                      PHP-Code:
                      <?php

                      if (!eregi("modules.php"$_SERVER['PHP_SELF'])) {
                          die (
                      "You can't access this file directly...");
                      }
                      $module_name basename(dirname(__FILE__));
                      require(
                      "modules/Forums/nukebb.php");
                      $index=1;



                      mysql_connect("","","");
                        
                      mysql_select_db("DB");

                        
                      $abfrage "SELECT * FROM nuke_search WHERE ".$_POST['suchliste']." LIKE '%".$_POST['eingabefeld']."%' ORDER BY Firma1 ASC";
                        
                      $ergebnis mysql_query($abfrage);
                        
                      $res mysql_query($abfrage) or die(mysql_error());
                         
                      $num mysql_num_rows($res);



                      ?>

                      <form action="index.php" method="post" name="suchformular">
                      <select size='1' name='suchliste'>
                         <option value='name'>Name</option>
                         <option value='plz'>PLZ</option>
                      </select>
                      <input type='text' name='name'>
                      <input type='submit' value='Suchen' name='Suchen'>
                      </form>


                      <table>
                      <tr>
                      <th width='250' valign='top'>Name</th>
                      <th width='200' valign='top'>PLZ</th>
                      </tr>

                      <?php
                         
                      for ($i=0$i<$num$i++)
                         {

                         
                      $name mysql_result($res$i"name");
                         
                      $plz mysql_result($res$i"plz");

                         echo 
                      "<tr>";
                         echo 
                      "<td valign='top'>$name</td>";
                         echo 
                      "<td valign='top'>$plz</td>";
                         echo 
                      "</tr>";
                         }
                      ?>
                      </table>

                      Sieht jetzt momentan so aus. Auf welchen wert muss ich denn das
                      PHP-Code:
                      LIKE '%".$_POST['eingabefeld']."%' 
                      hinweisen!?!?

                      Kommentar


                      • #12
                        Wo ist denn die Kontrolle mit IF???

                        Original geschrieben von rookie51
                        Auf welchen wert muss ich denn das
                        PHP-Code:
                        LIKE '%".$_POST['eingabefeld']."%' 
                        hinweisen!?!?
                        Keine Ahnung was du damit jetzt genau meinst, aber wenn du das so machen willst, musst du den Namen deines INPUT-Feldes in eingabefeld ändern.
                        it's not a bug,
                        it's a feature!

                        Kommentar


                        • #13
                          Original geschrieben von XGremliN
                          Wo ist denn die Kontrolle mit IF???



                          Keine Ahnung was du damit jetzt genau meinst, aber wenn du das so machen willst, musst du den Namen deines INPUT-Feldes in eingabefeld ändern.

                          Also ich hab jetzt einmal mein Input feld eingabefeld genannt.

                          Wo muss die IF Kontrolle hin???

                          PHP-Code:
                          <?php

                          if (!eregi("modules.php"$_SERVER['PHP_SELF'])) {
                              die (
                          "You can't access this file directly...");
                          }
                          $module_name basename(dirname(__FILE__));
                          require(
                          "modules/Forums/nukebb.php");
                          $index=1;




                            
                          mysql_connect("","","");
                            
                          mysql_select_db("");

                            
                          $abfrage "SELECT * FROM nuke_search WHERE ".$_POST['suchliste']." LIKE '%".$_POST['eingabefeld']."%' ORDER BY Firma1 ASC";
                            
                          $ergebnis mysql_query($abfrage);
                            
                          $res mysql_query($abfrage) or die(mysql_error());
                             
                          $num mysql_num_rows($res);



                          ?>

                          <form action="index.php" method="post" name="suchformular">
                          <select size='1' name='suchliste'>
                             <option value='name'>Name</option>
                             <option value='plz'>PLZ</option>
                          </select>
                          <input type='text' name='eingabefeld'>
                          <input type='submit' value='Suchen' name='Suchen'>
                          </form>


                          <table>
                          <tr>
                          <th width='250' valign='top'>Name</th>
                          <th width='200' valign='top'>PLZ</th>
                          </tr>

                          <?php
                             
                          for ($i=0$i<$num$i++)
                             {

                             
                          $name mysql_result($res$i"name");
                             
                          $plz mysql_result($res$i"plz");

                             echo 
                          "<tr>";
                             echo 
                          "<td valign='top'>$name</td>";
                             echo 
                          "<td valign='top'>$plz</td>";
                             echo 
                          "</tr>";
                             }
                          ?>
                          </table>



                          Und ich hab noch immer die gleiche Fehlermeldung mit dem

                          PHP-Code:
                          You have an error in your SQL syntaxCheck the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%%' ORDER BY Firma1 ASC' at line 1 

                          Kommentar


                          • #14
                            Die if-Kontrolle muss vor die Zeile
                            $abfrage = "SELECT * FROM nuke_search WHERE ".$_POST['suc ...

                            Und nach </table> die } nicht vergessen!!!

                            Die Fehlermeldung kommt, weil nichts als Suchbegriff übergeben wird.
                            Das sollte sich aber geben, wenn du das IF drin hast.
                            it's not a bug,
                            it's a feature!

                            Kommentar


                            • #15
                              Also jetzt sieht das ganze so aus und es geht garnix mehr. nur ne fehlermeldung das was in zeile 59 net stimmt und das is dort wo die "}" sitzt


                              PHP-Code:
                              <?php

                              if (!eregi("modules.php"$_SERVER['PHP_SELF'])) {
                                  die (
                              "You can't access this file directly...");
                              }
                              $module_name basename(dirname(__FILE__));
                              require(
                              "modules/Forums/nukebb.php");
                              $index=1;




                                
                              mysql_connect("host","user","pass");
                                
                              mysql_select_db("DBName");

                              if (isset(
                              $_POST['Suchen']))
                                 {
                                
                              $abfrage "SELECT * FROM nuke_search WHERE ".$_POST['suchliste']." LIKE '%".$_POST['eingabefeld']."%' ORDER BY Firma1 ASC";
                                
                              $ergebnis mysql_query($abfrage);
                                
                              $res mysql_query($abfrage) or die(mysql_error());
                                 
                              $num mysql_num_rows($res);


                              ?>


                              <form action="index.php" method="post" name="suchformular">
                              <select size='1' name='suchliste'>
                                 <option value='name'>Name</option>
                                 <option value='plz'>PLZ</option>
                              </select>
                              <input type='text' name='eingabefeld'>
                              <input type='submit' value='Suchen' name='Suchen'>
                              </form>


                              <table>
                              <tr>
                              <th width='250' valign='top'>Name</th>
                              <th width='200' valign='top'>PLZ</th>
                              </tr>

                              <?php
                                 
                              for ($i=0$i<$num$i++)
                                 {

                                 
                              $name mysql_result($res$i"name");
                                 
                              $plz mysql_result($res$i"plz");

                                 echo 
                              "<tr>";
                                 echo 
                              "<td valign='top'>$name</td>";
                                 echo 
                              "<td valign='top'>$plz</td>";
                                 echo 
                              "</tr>";
                                 }

                              ?>
                              </table>
                              }

                              Kommentar

                              Lädt...
                              X