Abfrage einer MYSQL Datenbank über PHP Suchfunktion

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrage einer MYSQL Datenbank über PHP Suchfunktion

    Hallo und Guten Tag,

    ich habe die MYSQL Datenbank "dateien" ,darin befindet sich die Tabelle "acs dokumente" ,nun soll via PHP eine Suchabfrage gestalltet werden. Also ein Textfeld, in der der User den Namen einer Datei z.B. Angebot.doc, eingibt und dann eine Auflistung bekommt was alles diesen Namen enthält. Danach sollte er die Datei auch öffnen können.

    Da ich aber keinen Plan von PHP habe wollte ich fragen ob ihr mir helfen könnt. Ich besitze aber Grundkentnisse der Programmiersprache C.

    Mitlerweile habe ich mir folgendes aus dem Internet zusammengebastelt.

    PHP Code:
    <?php error_reporting(E_ALL);
    echo 
    '<pre>';
    $q 'Angebot'// Suchbegriff
    $db mysql_connect("127.0.0.1","root"); 
    mysql_select_db("dateien",$db);
    $query "SELECT * FROM acs dokumente
               WHERE dateiname LIKE '%"
              
    mysql_real_escape_string($q
              . 
    "%'";
    $result mysql_query($query) or die('Fehler: ' mysql_error()); 
    while (
    $row mysql_fetch_assoc($result))

        
    print_r($row);
    }
    echo 
    '</pre>'
    $suchbegriff=$_POST['suchbegriff']; // 'suchbegriff' = Name des Textfeldes im Form

    ?>
    Bekomme aber folgenden Fehler: Fehler: Table 'dateien.acs' doesn't exist

  • #2
    ein tabellenname kann gut auf leerzeichen verzichten.

    Comment


    • #3
      Versuch doch mal folgendes:

      PHP Code:
      $query "
      SELECT * FROM `acs dokumente`
      WHERE dateiname LIKE '%"
      mysql_real_escape_string($q
      "%'"
      Wichtig: es handelt sich bei den Anführungsszeichen um das neben der ß auf der deutschen Tastatur (+ Schift).

      Ansonsten kann ich mich meinem Vorposter nur anschließen - lass das Leerzeichen möglichst weg!
      Tutorials, Tipps und mehr.

      Comment


      • #4
        Ok habe es jetzt so gemacht und habe aber ein neues Problem, er ignorriet komplett die html datei und gibt mir einen Fehler aus für Zeile 8: Notice: Undefined index: root in C:\xampp\htdocs\index.php on line 8

        PHP Code:
        <?php
        error_reporting
        (E_ALL);
        //echo '<pre>';
        $q 'Angebot'// Suchbegriff
        $suchbegriff "Angebot"// 'suchbegriff' = Name des Textfeldes im Form

        // datei.php
            
        echo $_POST['benutzername']; // Ausgabe je nach Eingabe

            // print_r($_POST); // Ausgabe aller POST-Elemente
        $db mysql_connect("127.0.0.1","root","pwd"); 
        mysql_query("USE dateien");
        $query "SELECT * FROM acsdokumente
                   WHERE DateiName LIKE '%"
                  
        mysql_real_escape_string($q
                  . 
        "%'";
        $result mysql_query($query) or die('Fehler: ' mysql_error());

        echo 
        "Ihre Suchanfrage nach <b>$suchbegriff</b> brachte folgende Ergebnisse:<br /><br />";

        while (
        $obj mysql_fetch_object($result))

            echo 
        $obj->DateiVerzeichnis;
            echo 
        "<br />";
        }
        //echo '</pre>'; 

        ?>
        Die Abfrage soll via HTML gemacht werden:
        Code:
        <html>
        
        <head>
        
        <title>Suchfunktion der ACS</title>
        </head>
        
        <body>
        <br>
        <p>Um die Suchfunktion nutzen zu können muss der Name der Datei in dem Textfeld unten stehen. </p>
        <br>
        <p>Anschließend auf Anfrage abschicken Klicken und los gehts</p>
        
        
        <form action="index.php" method="post">
            <input type="text" name="benutzername" value="Dateiname"/>
            <input type="submit" />
        </form>
        </body>
        </html>

        Comment


        • #5
          dann zeig mal die index.php um die zeile 8 herum.

          Comment


          • #6
            wenn sich alles in einer datei abspielt dann ist _POST['benutzername'] erst nach dem absenden des formulars verfügbar. daher der hinweis (keine fehlermeldung). siehe auch hier

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Comment


            • #7
              Also ich habe es jezt folgender Maßen geändert:

              PHP Code:
              <?php
              error_reporting
              (E_ALL);
              //echo '<pre>';

              $suchbegriff "Angebot"// 'suchbegriff' = Name des Textfeldes im Form


              $db mysql_connect("127.0.0.1","root","pwd"); 
              mysql_query("USE dateien");
              $query "SELECT * FROM acsdokumente
                         WHERE DateiName LIKE '%"
                        
              mysql_real_escape_string($q
                        . 
              "%'";
              $result mysql_query($query) or die('Fehler: ' mysql_error());

              echo 
              "Ihre Suchanfrage nach <b>$suchbegriff</b> brachte folgende Ergebnisse:<br /><br />";

              while (
              $obj mysql_fetch_object($result))

                  echo 
              $obj->DateiVerzeichnis;
                  echo 
              "<br />";
              }

                  echo 
              $_POST['benutzername']; // Ausgabe je nach Eingabe

                  //print_r($_POST); // Ausgabe aller POST-Elemente//echo '</pre>'; 

              ?>
              Mit dem Erfolg das er mir jetzt alle Daten anzeigt die die Datenbank hat :-(

              Ich versteh das nimmer.
              Last edited by CP 132; 31-05-2007, 19:59.

              Comment


              • #8
                PHP Code:
                mysql_real_escape_string($q
                und wo bitteschön kommt $q her,nachdem du das entfernt hast?
                PHP Code:
                $q 'Angebot'// Suchbegriff 
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Comment


                • #9
                  tut mir leid ich steh irgendwie auf dem Schlauch

                  ich sehe das Problem nciht, weiß aber da es da ist.

                  Comment


                  • #10
                    Original geschrieben von CP 132
                    ich sehe das Problem nciht, ...
                    wir auch nicht.

                    Comment


                    • #11
                      grundlagen?

                      gruß
                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Comment

                      Working...
                      X