PHP MySQL Suche

Jule_Fisi

Grünschnabel
Hallo ihr Lieben,
wiedermal scheitere ich an einem PHP Script. Aufgabe ist Über ein Webinterface eine Suche einzugeben die dann die Datenbank durchsucht.

HTML :
HTML:
<html>
<body>
Themensuche:
<form action = "search.php" method = "post">
    <input name = "%$anf%"> <p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

PHP:
PHP:
<?php
   mysql_connect("localhost","**","**");
mysql_select_db("archive");
 $sqlab = "select theme from books";
$sqlab .= " where theme like anf";

   $res = mysql_query($sqlab);
   $num = mysql_num_rows($res);
   if ($num==0)
      echo "keine passenden Datensätze gefunden";

  for ($i=0; $i<$num; $i++)
   {
      $tm = mysql_result($res, $i, "theme");

      echo "$tm<br>";
   }
 ?>

Fehlermeldung:
mysql_num_rows() expects parameter 1 to be resource, boolean given in /***/search.php on line 9.


Bitte seit nachsichtig da ich noch nicht so viel Erfahrung habe und ich hoffe ihr könnt mir eventuell weiterhelfen, Onkel Google konnte das nicht :D
 
Als allerserstes. Kein mysql_* verwenden. Das ist seit Jahren veraltet und wird in den neuen PHP-Versionen NICHT mher unterstützt!
Wechsle auf mysqli_*
Also gleich mal die Connection aufbauen
Code:
$conn = mysqli_connect("localhost", "my_user", "my_password", "my_db");


1) Vergib dem Inputfeld einen brauchbaren Namen
HTML:
<Input name = "anf">

2) Du verwertest nirgens die Formulardaten.
PHP:
$anf = $_POST['anf'];
//Dann noch für die Datenbank absichern
$anf = mysqli_real_escape_string($anf);

3) Das geht so nicht. Ausser anf ist ein Feld.
SQL:
where theme like anf
-- Du willst einen Vergleich und $anf als Teilstring. Also
where theme like '%{$anf}%'

4) Den ganzen Rest auch noch auf mysqli umstellen.
 
Danke für deine Hilfe, hab jetzt alles so umgestellt wie du meintest, bekomme jetzt aber diese Fehlermeldungen
Code:
mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /***/search.php on line 5
mysqli_query() expects at least 2 parameters, 1 given in /***/search.php on line 9
mysqli_num_rows() expects parameter 1 to be mysqli_result
 
Woher soll ich wissen, wie da das verstanden hast, was ich meinte?
Oder anderst ausgedrückt: Bitte zeig auch den Code.
 
Zurück