Datenbankabfrage mit Formular

Platinoy

Grünschnabel
Hallo Zusammen,

mein "Problem" ist bestimmt für viele hier ein "Klacks" jedoch komme ich gerade nicht weiter.
Es geht darum, das ich gerne ein Formular abschicken will, welches mir dann in der Datenbank nach dem gewünschten Inhalt sucht und ausgibt.
Es handelt sich eigentlich nur um Namen. Wenn - teils eingegebene - Name in das Textfeld des Formulars abgeschickt wird und in der Datenbank gespeichert ist, soll php mir den Namen + Straße etc ausgeben.
Egal was ich jedoch in das Formular eingebe, es kommt immer dieser Fehler:
mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in

Mein Formular sieht so aus:
HTML:
<form action="abfrage.php" method="post">
    <p><input name="name" /></p>
     <p><input type="submit" value="Anfrage absenden" /></p>
</form>
und meine php-Datei so:
PHP:
<?php
   require_once ('konfiguration.php');
   $db_link = mysqli_connect (
                    MYSQL_HOST,
                    MYSQL_BENUTZER,
                    MYSQL_KENNWORT,
                    MYSQL_DATENBANK
                   );

   $sql = "SELECT * FROM `Waldbesitzer` WHERE `name` LIKE '$_POST["name"]' ";
   $res = mysqli_query($db_link, $sql);
   $num =mysqli_num_rows($res);
   if ($num ==0) echo "Keine passende Datensätze gefunden";

   while ($dsatz = mysqli_fetch_assoc($res))
   {
       echo $dsatz["name"] . ", "
          . $dsatz["strasse"] . ", "
          . $dsatz["hausnummer"] . ", "
          . $dsatz["plz"] . ", "
          . $dsatz["ort"] . ", "
          . $dsatz["geburtstag"] . ", "
          . $dsatz["region"] . ", "
          . $dsatz["hektar"] . "<br />";
   }

   mysqli_close($db_link);

?>

wäre toll wenn mir jemamd helfen könnte

DANKE im Voraus
 
Hi

zwei große Probleme:

a) Viele der Datenbaknfunktionen können fehlschlagen. Meistens bekommt man dann false zurück, das man per if einfach überprüfen kann. zB. nach connect:
Code:
if(!$db_link) { /*Fehler, nicht weitermachen*/ }
Auch nach mysqli_query mit $res das Selbe

Bei dir ist $res jedenfalls false, deshalb die Fehlermeldung, nur ist zurzeit nicht erkennbar ob es wegen $db_link oder $sql passiert.

b) $_POST["name"] so einfach in die Abfrage einfügen ist sehr schlecht, weil man mit den passenden Eingaben im Formular die Abfrage grundsätzlich ändern kann, statt nur den Namen einzufügen. Siehe "Prepared Statements" (mehr als genug Beiträge dazu), womit es besser geht.
 
Zurück