Suchfunktion per PHP über MySql

xGutaxJungex

Mitglied
Hallo,
ich versuche für meine Seite eine Such Funktion zu erstellen, vergeblich :/ .
Ich mache sie über GET und habe sie momentan so aufgebaut:

PHP:
<form action="'.PAGE_SELF.'" method="GET">
  <input type="hidden" value="37" name="page">
<table><tr><td style="font-size: 12px;"><b>Titel:</b></td><td style="font-size: 12px;"><b>Autor:</b></td></tr>
<tr><td width="200"><input type="text" name="titel" style="width: 250px;"></td> <td width="200"><input type="text" name="autor" style="width: 250px;"><br></td>
<td><center><input type="submit" value="Suchen"></center></td></tr>
</table>
  </form>
PHP:
if ( !empty($_GET['titel'])) {
$titel = $_GET['titel'];
$titelgucken = mysql_query("SELECT * FROM galerie WHERE titel LIKE '$titel'");
}

if ( !empty($_GET['autor'])) {
$autor = $_GET['autor'];
$autorgucken = mysql_query("SELECT * FROM galerie WHERE autor LIKE '$autor'");}

Ich wollte fragen, wieso ich keine Ausgabe bekomme? Ich weiß, das es mit $autorgucken und $titelgucken es zu tun hat, aber ich bin gerade völlig GAGA :P .
 
Änder deine Mysql anfragen mal in LIKE %...%

D.H.:

$titelgucken = mysql_query("SELECT * FROM galerie WHERE titel LIKE '%$titel%'");

Noch ein Beispiel aus meiner SuFu:

PHP:
$sql = mysql_query("SELECT * FROM user WHERE user LIKE '%".$_GET['s']."%'");
echo '<h3>Mitglieder-Ergebnisse ('.mysql_num_rows($sql).' Ergebnisse)</h3>';
while ($res = mysql_fetch_array($sql))
{
echo '<div class="div"><a href="user.php?user='.$res['user'].'">'.$res['user'].'</a></div>';
}
 
Zuletzt bearbeitet:
BTW: Es ist eine sehr schlechte Idee, Formular-Werte ungefiltert an einen SQL-Query zu übergeben. Bitte wenigstens mysql_real_escape_string() verwenden.

Wie styler2go schon indirekt angedeutet hat, müssen die Resultate aus der mysql_query()-Funktion noch an mysql_fetch*()-Funktionen übergeben werden, um die einzelnen Datensätze aus der Ergebnismenge zu holen. Am besten du erledigst es erst einmal mit mysql_fetch_array() und greifst dann in dem daraus resultierenden Array auf die einzelnen Spalten zu. Wie das funktioniert kannst du in der Beschreibung des Befehls lesen, bei der es auch ein gutes Beispiel gibt.
 
"BTW: Es ist eine sehr schlechte Idee, Formular-Werte ungefiltert an einen SQL-Query zu übergeben. Bitte wenigstens mysql_real_escape_string() verwenden."

Hmm... Kannst du mir mal erklären wieso das ine sehr schelchte Idee ist?
Nur das ich mein wissen erweitern kann *gg*
 
Zurück