Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Suche mit mehreren Eingabefeldern

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Suche mit mehreren Eingabefeldern

    Hallo liebe PHP.de-Community!

    Da ich neu hier bin und über mehrere Tage keine Lösung MEINES Problemes gefunden habe (Ja, ich habe Google verwendet!), möchte ich nun fachkundige Hilfe aus erster Hand!

    Es geht um folgendes: Wie der Thread Titel schon ankündigt, benötige ich ein Suchscript mit mehreren Eingabefeldern. Das funktionierende Script habe ich bereits zusammenbekommen, allerdings liegt mein Problem darin, dass die Suchbegriffe separat voneinander gesucht werden. Folgendes Beispiel soll den Sachverhalt deutlich machen.

    Es soll Max Mustermann in Musterstraße 1, in 12345 Musterstadt gesucht werden. Jetzt gibt mir mein Suchscript allerdings ALLES an, was mit

    Max
    Mustermann
    Musterstraße 1
    12345
    Musterstadt

    zu tun hat. Allerdings soll er nur Ergebnisse auflisten, die mit den gemachten Eingaben im Ganzen übereinstimmen. Ferner soll es möglich sein, dass man ALLE Eingaben machen kann, allerdings nicht muss.

    Hier mein Script. Verbesserungsvorschläge sind erwünscht, zumal ich mir alles selbst beigebracht habe und ein "blutiger" Anfänger bin:

    PHP-Code:
            <form action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" method="post">
            Vorname:<br><input type="text" name="vname"><br>
            Nachname:<br><input type="text" name="nname"><br>
            Stra&szlige / Nr.:<br><input type="text" name="strnr"><br>
            PLZ:<br><input type="text" name="plz"><br>
            Ort:<br><input type="text" name="ort"><p><br></p>
            <input type="submit" name="search" value="Suchen">
            <input type="reset" name="clear" value="L&ouml;schen">
            </form>
            <?php error_reporting(E_ALL);

            
    $db_host "";
            
    $db_user "";
            
    $db_pass "";
            
    $db_name "";
            
    $abf false;

            if (isset(
    $_POST["search"])) {

                
    $sql mysqli_connect($db_host$db_user$db_pass$db_name
                   or die(
    "Die Datenbank konnte nicht erreicht werden!");
        
                if (isset(
    $_POST["vname"]) and !empty($_POST["vname"])) {

                
    $vname trim($_POST["vname"]);
                
    $vname preg_replace("/[^a-z\s-]/i"""$vname);
                
    $abf "SELECT * FROM ... WHERE vname='".$vname."'";
                }

                if (isset(
    $_POST["nname"]) and !empty($_POST["nname"])) {

                
    $nname trim($_POST["nname"]);
                
    $nname preg_replace("/[^a-z\s-]/i"""$nname);
                
    $abf "SELECT * FROM ... WHERE nname='".$nname."'";
                }

                if (isset(
    $_POST["strnr"]) and !empty($_POST["strnr"])) {

                
    $strnr trim($_POST["strnr"]);
                
    $strnr preg_replace("/[^a-z0-9.,-_\s-]/i"""$strnr);
                
    $abf "SELECT * FROM ... WHERE strnr='".$strnr."'";
                }

                if (isset(
    $_POST["plz"]) and !empty($_POST["plz"])) {

                
    $plz trim($_POST["plz"]);
                
    $plz preg_replace("/[^0-9\s-]/i"""$plz);
                
    $abf "SELECT * FROM ... WHERE plz='".$plz."'";
                }

                if (isset(
    $_POST["ort"]) and !empty($_POST["ort"])) {

                
    $ort trim($_POST["ort"]);
                
    $ort preg_replace("/[^a-z\s-]/i"""$ort);
                
    $abf "SELECT * FROM ... WHERE ort='".$ort."'";
                }

                if (
    $sql != false and $abf != false) {

                if (
    $result mysqli_query($sql$abf)) {

                    
    $anzahl mysqli_num_rows($result);
                    echo 
    "<p>Es wurden <strong>".$anzahl."</strong> Datens&auml;tze gefunden!</p>\n";

                    echo 
    "<table border=\"1\">\n".
                    
    "<tr><th>Vorname</th><th>Nachname</th><th>Stra&szlig;e / Nr.</th><th>PLZ</th><th>Ort</th>\n";

                    while (
    $datensatz mysqli_fetch_assoc($result)) {

                    echo 
    "<tr>".
                    
    "<td>" .htmlspecialchars($datensatz["vname"], ENT_QUOTES'UTF-8')."</td>".
                    
    "<td>" .htmlspecialchars($datensatz["nname"], ENT_QUOTES'UTF-8')."</td>".
                    
    "<td>" .htmlspecialchars($datensatz["strnr"], ENT_QUOTES'UTF-8')."</td>".
                    
    "<td>" .htmlspecialchars($datensatz["plz"], ENT_QUOTES'UTF-8')."</td>".
                    
    "<td>" .htmlspecialchars($datensatz["ort"], ENT_QUOTES'UTF-8')."</td>".
                    
    "</tr>\n";
                    }
                
    mysqli_free_result($result);
                echo 
    "</table>\n";
                }
                 
    mysqli_close($sql);
                }
                else {echo 
    "Es wurden keine verwertbaren Daten vom Formular übermittelt.\n";}
            } 
            
    ?>
    Hinzu kommt, dass er mir "..straße" aufgrund des "ß" nicht auflistest. Erst, wenn ich in der Datenbank alle "..straße" durch "..str." ersetze, werden diese gelistet.

    Vielen Dank für die Hilfe!

  • #2
    Du musst an Hand der Eingaben dir eine(!) Query zusammenbauen die nach allen diesen Eingaben mit AND in der DB sucht.

    Und lass die ersetzerei, nutze prepared Statments oder mysqli_real_escape_string() um die Eingaben korrekt abzusichern/verarbeiten können.

    Und nutze konsequent und durchgehend UTF-8, dann brauchst du auch sowas nicht
    Datens&auml;tze, Stra&szlig;e http://php-de.github.io/jumpto/mysql-and-utf8/

    PHP-Code:
    <form action="<?php echo basename($_SERVER["PHP_SELF"]); ?>"
    action Attribut einfach leer lassen (bei HTML5 ganz weglassen), PHP_SELF ist böse, wegen potentieller XSS Anfälligkeit.

    Und schau dir auch das EVA-Prinzip mal an, dein Code ist ziemlich unstrukturiert
    http://php-de.github.io/jumpto/eva-prinzip/

    LG
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Zitat von hausl Beitrag anzeigen
      Du musst an Hand der Eingaben dir eine(!) Query zusammenbauen die nach allen diesen Eingaben mit AND in der DB sucht.

      Und lass die ersetzerei, nutze prepared Statments oder mysqli_real_escape_string() um die Eingaben korrekt abzusichern/verarbeiten können.

      Und nutze konsequent und durchgehend UTF-8, dann brauchst du auch sowas nicht
      Datens&auml;tze, Stra&szlig;e http://php-de.github.io/jumpto/mysql-and-utf8/


      action Attribut einfach leer lassen (bei HTML5 ganz weglassen), PHP_SELF ist böse, wegen potentieller XSS Anfälligkeit.

      Und schau dir auch das EVA-Prinzip mal an, dein Code ist ziemlich unstrukturiert
      http://php-de.github.io/jumpto/eva-prinzip/

      LG
      Hallo und danke für die schnelle Rückmeldung. Da ich leider nicht alles verstehe, was du sagst, habe ich jetzt mal nur mittels charset mein Dokument auf UTF-8 gesetzt und die entsprechenden Zeichen ersetzt. Was du allerdings mit Ersetzerei meinst, ist mir ein Rätsel. Dass ich AND einfügen solltem ging mir auch bereits durch den Kopf, allerdings habe ich keine Ahnung wie und wo. Deswegen mein Beitrag hier. Generell habe ich irgendwie eine Blockade, wenn du mir also ein Beispiel geben könntest, wäre das echt nett.

      LG Labushuya

      Kommentar


      • #4
        Zitat von Labushuya Beitrag anzeigen
        Was du allerdings mit Ersetzerei meinst, ist mir ein Rätsel.
        Das was du da bei jedem Feld machst.
        PHP-Code:
        $vname preg_replace("/[^a-z\s-]/i"""$vname); 
        Man verändert Eingabedaten nicht (so). Ich würde mal sagen du kannst mit trim() Leerzeichen wegkappen aber mehr nicht. Wenn dann ein nicht erlaubtes Zeichen vorhanden ist dann den Benutzer mit einer Fehlermeldung konfrontieren und nichts wegschnupfen und still halten. Zwecks Sicherheit wie schon erwähnt gibt es andere (schon erwähnte) Techniken.

        So in der Art - Pseudocode

        PHP-Code:
        $abf"SELECT ... FROM ... WHERE 1=1 ";

        if isset(
        $_POST['vname']) {
            
        // .. todo: etwaige oben erwähnte Fehlerpüfung
            
        $sql .= " AND `vname`= " mysqli_real_escape_string($_POST['vname']));
        }


        if isset(
        $_POST['nname']) {
            
        // .. todo: etwaige oben erwähnte Fehlerpüfung
            
        $sql .= " AND `nname`= " mysqli_real_escape_string($_POST['nname']));
        }
        // etc... 
        Das ganze könnte man dann auch noch "praktisch" mit Arrays und Schleifen machen (im Sinne des Grundsatzes DRY - "Dont repeat yourself") - hier als Ansatz - Pseudocode 2 (sicher voller kleinerer Fehler, hier schnell getippt):

        PHP-Code:
        $aFields = ['vname''nname', ... ];
        $aANDclauses = [];

        foreach (
        $aFields as $field) {
          if isset(
        $_POST[$field]) {
              
        // .. todo: etwaige oben erwähnte Fehlerpüfung
             
        $aANDclauses[] = $field ."="mysqli_real_escape_string($_POST[$field]);
        }

        $sql "SELECT ... FROM ... WHERE 1=1 "implode(" AND "$aFields); 
        etc... Was bei beiden noch zu ergänzen wäre eine etwaige Fehlerprüfung, da gibts auch mehr möglichkeiten (preg_match, filter_input, etc..) und auch hier entweder über arrays oder halt Step by Step wie oben im ersten Beispiel.

        LG
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Also ganz ehrlich: Ich hab jetzt komplett den Faden verloren. Hab mal was versucht und nun geht nichts mehr.

          PHP-Code:
                  <?php error_reporting(E_ALL);

                  
          $db_host "";
                  
          $db_user "";
                  
          $db_pass "";
                  
          $db_name "";
                  
          $abf false;

                      if (isset(
          $_POST["search"])) {
                  
                      
          $aFields = ['vname''nname''strnr''plz''ort', ];
                      
          $aANDclauses = [];

                      foreach (
          $aFields as $field) {
                      if isset(
          $_POST[$field]) {
                      
          // .. todo: etwaige oben erwähnte Fehlerpüfung
                      
          $aANDclauses[] = $field ."="mysqli_real_escape_string($_POST[$field]);
                      }

                      
          $sql mysqli_connect($db_host$db_user$db_pass$db_name
                         or die(
          "Die Datenbank konnte nicht erreicht werden!");
                      
          $sql "SELECT * FROM  WHERE 1=1 "implode(" AND "$aFields);  

                      if isset(
          $_POST['vname']) {
                      
          // .. todo: etwaige oben erwähnte Fehlerpüfung
                      
          $sql .= " AND `vname`= " mysqli_real_escape_string($_POST['vname']));
                      }

                      if isset(
          $_POST['nname']) {
                      
          // .. todo: etwaige oben erwähnte Fehlerpüfung
                      
          $sql .= " AND `nname`= " mysqli_real_escape_string($_POST['nname']));
                      }

                      if isset(
          $_POST['strnr']) {
                      
          // .. todo: etwaige oben erwähnte Fehlerpüfung
                      
          $sql .= " AND `strnr`= " mysqli_real_escape_string($_POST['strnr']));
                      }
                      
                      if isset(
          $_POST['plz']) {
                      
          // .. todo: etwaige oben erwähnte Fehlerpüfung
                      
          $sql .= " AND `plz`= " mysqli_real_escape_string($_POST['plz']));
                      }
                      
                      if isset(
          $_POST['ort']) {
                      
          // .. todo: etwaige oben erwähnte Fehlerpüfung
                      
          $sql .= " AND `ort`= " mysqli_real_escape_string($_POST['ort']));
                      }

                      if (
          $sql != false and $abf != false) {

                      if (
          $result mysqli_query($sql$abf)) {

                          
          $anzahl mysqli_num_rows($result);
                          echo 
          "<p>Es wurden <strong>".$anzahl."</strong> Datensätze gefunden!</p>\n";

                          echo 
          "<table border=\"1\">\n".
                          
          "<tr><th>Vorname</th><th>Nachname</th><th>Straße / Nr.</th><th>PLZ</th><th>Ort</th>\n";

                          while (
          $datensatz mysqli_fetch_assoc($result)) {

                          echo 
          "<tr>".
                          
          "<td>" .htmlspecialchars($datensatz["vname"], ENT_QUOTES'UTF-8')."</td>".
                          
          "<td>" .htmlspecialchars($datensatz["nname"], ENT_QUOTES'UTF-8')."</td>".
                          
          "<td>" .htmlspecialchars($datensatz["strnr"], ENT_QUOTES'UTF-8')."</td>".
                          
          "<td>" .htmlspecialchars($datensatz["plz"], ENT_QUOTES'UTF-8')."</td>".
                          
          "<td>" .htmlspecialchars($datensatz["ort"], ENT_QUOTES'UTF-8')."</td>".
                          
          "</tr>\n";
                          }
                      
          mysqli_free_result($result);
                      echo 
          "</table>\n";
                      }
                       
          mysqli_close($sql);
                      }
                      else {echo 
          "Es wurden keine verwertbaren Daten vom Formular übermittelt.\n";}
                  } 
                  
          ?>
          </html>
          Die Fehlerüberprüfung hab ich rausgelassen, weil du ja gesagt hast, die wäre ansonsten anfällig für SQL Injection. Kein Plan, was ich jetzt machen soll.

          Kommentar


          • #6
            Jetzt ist es komplett verhunzt. Geh noch mal zum Anfang des Threads und versuch zu verstehen was dir da erzählt wird und was der Code machen soll. Du kannst dein orginal Code weiter verwenden. Du musst aber $abf anderes erzeugen. Ein einfaches Beispiel findest du in hausl letzten Post, zweiter Code Block. (nicht Pseudocode 2!) Da schaust du dir an was mit $sql (bei dir $abf genannt) passsiert und passt das auf deinen Code an.

            Kommentar


            • #7
              Labushuya, wenn du nicht verstehst was da passiert ist es natürlich schweirig... Also was passiert da..

              Du gehts deine Parameter im $_POST (das ist was vom Form übertragen wurde) Parameter für Parameter durch und prüfst ob etwas vom Form übergeben wurde (also ein Suchkriterium). Wenn ja, dann wird deine SQL-Query um die entsprechende Bedingung erweitert.

              Du kannst dir diese zwischendurch immer auch mit echo $abf ausgeben dann siehst du was da nach und nach - je nach ausgefüllten Suchkriterien im Form - ergänzt wird.

              Wenn du alle Parameter durch hast, schickst du die fertige Query (deine $abf) an die DB und bekommst von dieser die gewünschten Datensätze.
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                PHP-Code:
                        <?php error_reporting(E_ALL);

                        
                $db_host "";
                        
                $db_user "";
                        
                $db_pass "";
                        
                $db_name "";
                        
                $abf false;

                        if (isset(
                $_POST["search"])) {

                            
                $sql mysqli_connect($db_host$db_user$db_pass$db_name
                               or die(
                "Die Datenbank konnte nicht erreicht werden!");

                        
                $abf"SELECT * FROM ... WHERE 1=1 ";

                        if isset(
                $_POST['vname']) {
                            
                // .. todo: etwaige oben erwähnte Fehlerpüfung
                            
                $sql .= " AND `vname`= " mysqli_real_escape_string($_POST['vname']));
                        }

                        if isset(
                $_POST['nname']) {
                            
                // .. todo: etwaige oben erwähnte Fehlerpüfung
                            
                $sql .= " AND `nname`= " mysqli_real_escape_string($_POST['nname']));
                        }

                        if isset(
                $_POST['strnr']) {
                            
                // .. todo: etwaige oben erwähnte Fehlerpüfung
                            
                $sql .= " AND `nname`= " mysqli_real_escape_string($_POST['strnr']));
                        }

                        if isset(
                $_POST['plz']) {
                            
                // .. todo: etwaige oben erwähnte Fehlerpüfung
                            
                $sql .= " AND `plz`= " mysqli_real_escape_string($_POST['plz']));
                        }

                        if isset(
                $_POST['ort']) {
                            
                // .. todo: etwaige oben erwähnte Fehlerpüfung
                            
                $sql .= " AND `ort`= " mysqli_real_escape_string($_POST['ort']));
                        }

                            if (
                $sql != false and $abf != false) {

                            if (
                $result mysqli_query($sql$abf)) {

                                
                $anzahl mysqli_num_rows($result);
                                echo 
                "<p>Es wurden <strong>".$anzahl."</strong> Datensätze gefunden!</p>\n";

                                echo 
                "<table border=\"1\">\n".
                                
                "<tr><th>Vorname</th><th>Nachname</th><th>Straße / Nr.</th><th>PLZ</th><th>Ort</th>\n";

                                while (
                $datensatz mysqli_fetch_assoc($result)) {

                                echo 
                "<tr>".
                                
                "<td>" .htmlspecialchars($datensatz["vname"], ENT_QUOTES'UTF-8')."</td>".
                                
                "<td>" .htmlspecialchars($datensatz["nname"], ENT_QUOTES'UTF-8')."</td>".
                                
                "<td>" .htmlspecialchars($datensatz["strnr"], ENT_QUOTES'UTF-8')."</td>".
                                
                "<td>" .htmlspecialchars($datensatz["plz"], ENT_QUOTES'UTF-8')."</td>".
                                
                "<td>" .htmlspecialchars($datensatz["ort"], ENT_QUOTES'UTF-8')."</td>".
                                
                "</tr>\n";
                                }
                            
                mysqli_free_result($result);
                            echo 
                "</table>\n";
                            }
                             
                mysqli_close($sql);
                            }
                            else {echo 
                "Es wurden keine verwertbaren Daten vom Formular übermittelt.\n";}
                        } 
                        
                ?>
                        </p>
                Ich bin jetzt alles mögliche durchgegangen und es funktioniert einfach nicht.

                Kommentar


                • #9
                  und es funktioniert einfach nicht.
                  bedeutet was?
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Zitat von hausl Beitrag anzeigen
                    bedeutet was?
                    Bedeutet, dass ich nun eine komplett weiße Seite angezeigt bekomme.

                    Kommentar


                    • #11
                      Guck dir deinen Code nochmal ganz genau an.
                      PHP-Code:
                      $sql mysqli_connect($db_host$db_user$db_pass$db_name
                                     or die(
                      "Die Datenbank konnte nicht erreicht werden!"); // ok
                      $abf"SELECT * FROM ... WHERE 1=1 "// ok
                      $sql .= " AND `vname`= " mysqli_real_escape_string($_POST['vname']));    // na nu, falsche Variable? 
                      1-Satz Reaktionen helfen übrigens selten, der Problemlösung näher zu kommen.
                      [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                      [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                      Kommentar


                      • #12
                        Neben dem auf das VPh hingewiesen hat:

                        Zitat von Labushuya Beitrag anzeigen
                        PHP-Code:
                        $sql .= " AND `vname`= " mysqli_real_escape_string($_POST['vname'])); 
                        Lass dir mal den erzeugten Query ausgeben, du wirst (hoffentlich) sehen dass da Anführungszeichen um die Werte fehlten nach denen gesucht werden soll.

                        Kommentar


                        • #13
                          PHP-Code:
                          <?php error_reporting(E_ALL);

                                  
                          $db_host "";
                                  
                          $db_user "";
                                  
                          $db_pass "";
                                  
                          $db_name "";
                                  
                          $abf false;

                                  if (isset(
                          $_POST["search"])) {

                                      
                          $sql mysqli_connect($db_host$db_user$db_pass$db_name
                                         or die(
                          "Die Datenbank konnte nicht erreicht werden!");

                                  
                          $abf"SELECT * FROM ... WHERE 1=1 ";

                                  if isset(
                          $_POST['vname']) {
                                      
                          // .. todo: etwaige oben erwähnte Fehlerpüfung
                                      
                          $abf .= " AND `vname`= " mysqli_real_escape_string($_POST['vname']));
                                  }

                                  if isset(
                          $_POST['nname']) {
                                      
                          // .. todo: etwaige oben erwähnte Fehlerpüfung
                                      
                          $abf .= " AND `nname`= " mysqli_real_escape_string($_POST['nname']));
                                  }

                                  if isset(
                          $_POST['strnr']) {
                                      
                          // .. todo: etwaige oben erwähnte Fehlerpüfung
                                      
                          $abf .= " AND `strnr`= " mysqli_real_escape_string($_POST['strnr']));
                                  }

                                  if isset(
                          $_POST['plz']) {
                                      
                          // .. todo: etwaige oben erwähnte Fehlerpüfung
                                      
                          $abf .= " AND `plz`= " mysqli_real_escape_string($_POST['plz']));
                                  }

                                  if isset(
                          $_POST['ort']) {
                                      
                          // .. todo: etwaige oben erwähnte Fehlerpüfung
                                      
                          $abf .= " AND `ort`= " mysqli_real_escape_string($_POST['ort']));
                                  }

                                      if (
                          $sql != false and $abf != false) {

                                      if (
                          $result mysqli_query($sql$abf)) {

                                          
                          $anzahl mysqli_num_rows($result);
                                          echo 
                          "<p>Es wurden <strong>".$anzahl."</strong> Datensätze gefunden!</p>\n";

                                          echo 
                          "<table border=\"1\">\n".
                                          
                          "<tr><th>Vorname</th><th>Nachname</th><th>Straße / Nr.</th><th>PLZ</th><th>Ort</th>\n";

                                          while (
                          $datensatz mysqli_fetch_assoc($result)) {

                                          echo 
                          "<tr>".
                                          
                          "<td>" .htmlspecialchars($datensatz["vname"], ENT_QUOTES'UTF-8')."</td>".
                                          
                          "<td>" .htmlspecialchars($datensatz["nname"], ENT_QUOTES'UTF-8')."</td>".
                                          
                          "<td>" .htmlspecialchars($datensatz["strnr"], ENT_QUOTES'UTF-8')."</td>".
                                          
                          "<td>" .htmlspecialchars($datensatz["plz"], ENT_QUOTES'UTF-8')."</td>".
                                          
                          "<td>" .htmlspecialchars($datensatz["ort"], ENT_QUOTES'UTF-8')."</td>".
                                          
                          "</tr>\n";
                                          }
                                      
                          mysqli_free_result($result);
                                      echo 
                          "</table>\n";
                                      }
                                       
                          mysqli_close($sql);
                                      }
                                      else {echo 
                          "Es wurden keine verwertbaren Daten vom Formular übermittelt.\n";}
                                  } 
                                  
                          ?>
                          Ich hab jetzt auf $sql mal $abf gemacht und trotzdem funktioniert es nicht. Was die Aussage mit den Anführungszeichen soll, versteh ich auch nicht. Könnt ihr mir nicht einfach das fertige Script geben und es mir anhand dessen erklären? Sonst geht das hier ewig weiter. Ich stehe etwas unter Zeitdruck und dachte, dass das Thema eigentlich maximal einen Tag in Anspruch nehmen würde.

                          Ich bin jetzt wirklich verschiedene Optionen durchgegangen und finde den Fehler einfach nicht!

                          LG Labushuya

                          Kommentar


                          • #14
                            In MySQL müssen String mit Hochkommas versehen werden.
                            PHP-Code:
                            " AND `vname`= " mysqli_real_escape_string($_POST['vname'])); 
                            Die Hochlommas die du verwendest, verwendest du php-seitig um deine Abfrage überhaupt zusammenzubauen, die für mysql fehlen noch.

                            Könnt ihr mir nicht einfach das fertige Script geben und es mir anhand dessen erklären?
                            Könnten ja, aber das ist nicht Sinn dieses Forums. Weiß ja keiner ob du dir die Erklärung auch ansiehst oder nur das Script mitnimmst.
                            [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                            [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                            Kommentar


                            • #15
                              Könnt ihr mir nicht einfach das fertige Script geben und es mir anhand dessen erklären?
                              Ich denke das hier aus den Forenrichtlinen, beantwortet deine Frage:

                              http://www.php.de/php-einsteiger/announcements.html

                              Sei sozial

                              Wir haben kein Interesse daran, kostenlos Deine Skripte zu schreiben oder zu reparieren, da das sehr viel Zeit und Mühe kosten kann. Akzeptiere also, dass sich unsere Motivation eventuell von Deiner unterscheidet und wir daher nur Hilfe zur Selbsthilfe geben. Wir sind nicht die Wohlfahrt und akute Programmierprobleme keine Notlagesituation. Wenn doch, wende Dich bitte mit einem Jobangebot an die Community oder einen Programmierer vor Ort.
                              The string "()()" is not palindrom but the String "())(" is.

                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar

                              Lädt...
                              X