Abfrage einer MYSQL Datenbank über PHP Suchfunktion

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

  • 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.

    Kommentar


    • #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.

      Kommentar


      • #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>

        Kommentar


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

          Kommentar


          • #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

            Kommentar


            • #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.
              Zuletzt geändert von CP 132; 31.05.2007, 20:59.

              Kommentar


              • #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

                Kommentar


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

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

                  Kommentar


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

                    Kommentar


                    • #11
                      grundlagen?

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

                      Kommentar

                      Lädt...
                      X