[PHP & MySQL] Suchfunktion

Raindrops
huhu smile
ich möchte auf Avenue gern eine Suchfunktion einbauen, wo man dann nach verschiedenen Kriterien ein Pferd suchen kann, in dem man ein Formular ausfüllt, auf "suchen" klickt & dann alle Pferde, die auf ein Gesuch passen, angezeigt werden. Ich hab auch bei Google nach einem TuT dafür gesucht & auch hier bei GB, jedoch nichts passendes gefunden. Wäre euch sehr dankbar, wenn ihr mir helfen könntet fröhlich

LG
Nanni
1. Du machst ein normales Formular mit HTML, Felder sagen wir mal: Rasse und Geschlecht.

2. Du wertest das Formular aus ($rasse = $_POST['rasse'] u.s.w.)

3. Du machst eine Abfrage
SELECT * FROM Pferde WHERE Rasse LIKE '%$rasse%' AND Geschlecht LIKE '%$geschlecht%'

Habs noch nie ausprobiert, rein theoretisch sollte es dann allerdings gehen. Wird kein Geschlecht angegeben, werden alle Geschlechter angezeigt, bei einer Suche nach Araber auch Asil Araber, Araber Berber u.s.w., ob Klein/Großschreibung auch geht (also auch Vollblutaraber gefunden wird) müsstest du jedoch erst testen.
Weiß nicht ob dir das für deine Suche schon reicht oder ob du es präzisier haben möchtest.
Raindrops
danke AnnSo für den link, aber der Tutorial ist nicht das was sich suche Augenzwinkern Wie ich im ersten Post beschrieb, suche ich einen Tutorial für eine SuFu, wo nicht alles nach einem Suchwort durchsucht wird, sondern wo der User Rasse, Geschlecht, Schwerpunkt, usw. eingeben kann und dann alle Pferde angezeigt bekommt, die auf seine Suche zutreffen...
kext
Zitat:
Original von Nanni
3. Du machst eine Abfrage
SELECT * FROM Pferde WHERE Rasse LIKE '%$rasse%' AND Geschlecht LIKE '%$geschlecht%'

Tut das nie, niemals! Solche Abfragen öffnen Tür und Tor für SQL-Injections.

Die Abfrage muss lauten:

php:
1:
2:
$query mysql_query("SELECT * FROM Pferde WHERE Rasse LIKE '%".mysql_real_escape_string($rasse)."%'
                      AND Geschlecht LIKE '%".mysql_real_escape_string($geschlecht)."%'");
Durch die PHP-Funktion mysql_real_escape_string werden vom Benutzer eingegebene Daten bereinigt.
Raindrops
also, ich hab's mal mit dem Tut von The Peril versucht. Rumgekommen ist dabei das: klick Kann durchaus sein, dass dabei ziemlicher Murks rumgekommen ist, vielleicht kann mir ja jemand helfen, die Fehlermeldungen zu beheben & die ganze Suche noch in ein Formular zu verfrachten smile <3

Hier der Code:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("header.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["suche"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE titel LIKE '%".$POST["typ"]."%' OR text LIKE
'%".$POST["typ"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<h2>".$row->titel."</h2>";
echo "Von: ".$row->webby."
";
echo "<a href='tut.php?id=".$row->id."'>Link zu Tut</a>";
echo "</div>";
}

include("footer.php");
?>
Raindrops
ahh, okay, das hat jetzt schonmal die oberen Fehlermeldungen behoben großes Grinsen Jetzt nur noch die Fehler in Zeile 29 & 32.

aktueller Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["suche"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE titel LIKE '%".$POST["typ"]."%' OR text LIKE
'%".$POST["typ"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<h2>".$row->titel."</h2>";
echo "Von: ".$row->webby."
";
echo "<a href='Pferd.php?id=".$row->id."'>Link zu dem Pferd</a>";
echo "</div>";
}

?>
Raindrops
oh shit, shit shit großes Grinsen

aktueller Code:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("db.php");


echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["suche"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE titel LIKE '%".$POST["typ"]."%' OR text LIKE
'%".$POST["typ"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<h2>".$row->titel."</h2>";
echo "Von: ".$row->webby.";
";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>



jetzt erscheinen aber wieder 2 weitere Fehlermeldungen: klick

Vroni, ich hab das nach dem TUT auf the-peril.com gemacht, da stand davon nix & ich hab ehrlich gesagt, keine Ahnung, wo das jetz in den Code muss =/
Raindrops
so jetz aber:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("http://zsavenue.square7.ch/Zuchtstation/db.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["typ"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE titel LIKE '%".$POST["typ"]."%' OR text LIKE
'%".$POST["typ"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<h2>".$row->titel."</h2>";
echo "Von: ".$row->webby.";
";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>
kext
php:
1:
include("http://zsavenue.square7.ch/Zuchtstation/db.php");
So kann das nicht funktionieren.

Der include Befehl muss einen lokalen Pfad einbinden. z.B. "db.php", "Zuchtstation/db.php", "/var/www/zsavenue/Zuchtstation/db.php" oder ähnliches.
Raindrops
nächster Anlauf:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("Zuchtstation/db.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["typ"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE titel LIKE '%".$POST["typ"]."%' OR text LIKE
'%".$POST["typ"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<h2>".$row->titel."</h2>";
echo "Von: ".$row->webby.";
";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>

Raindrops
also langsam dröhnt mir der Kopf großes Grinsen

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("Zuchtstation/db.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["typ"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE typ LIKE '%".$POST["typ"]."%' OR rasse LIKE
'%".$POST["rasse"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<h2>".$row->titel."</h2>";
echo "Von: ".$row->webby.";
";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>

jetzt isses - hoffentlich - so weit richtig.

Letzte verbleibende Fehlermeldung:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /users/zsavenue/www/Suche.php on line 33
Raindrops
ne, die hab ich nicht, aber wenn cih den Teil rausnehme, kommt das: klick

der aktuelle Code:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("Zuchtstation/db.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["typ"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE typ LIKE '%".$POST["typ"]."%' OR rasse LIKE
'%".$POST["rasse"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>


LG
Raindrops
ah, vielen Dank :3

jetzt muss nurnoch die Fehlermeldung von der Zeile 33 =D

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("Zuchtstation/db.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["typ"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE typ LIKE '%".$POST["typ"]."%' OR rasse LIKE
'%".$POST["rasse"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM pferde ".$zusatz;
$ergebnis mysql_query($abfrage);
?>
 <?php
while($row mysql_fetch_object($ergebnis)){
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
echo "<div>";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>



Liebe Grüße
kext
Der Fehler rührt daher, dass die Abfrage „SELECT * FROM pferde“ fehlschlägt. Das bedeutet, dass es überhaupt keine Tabelle namens „pferde“ gibt, möglicherweise, weil Du die falsche Datenbank gewählt hast.
Raindrops
ich hab's mal geändert, die Fehlermeldung wird aber weiterhin angezeigt =/

Der Code:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
<link rel="stylesheet" href="http://zsavenue.square7.ch/style.css">
 <?php
include("Zuchtstation/db.php");

echo "<b><i>Suche</i></b><br><br>";

/* SUCH FORMULAR */
echo "<form action='tutorials.php?action=suchen' method='post'>";
echo "Tpy: <input type='text' name='typ' /><br>";
echo "Rasse: <input type='text' name='rasse' /><br>";
echo "Geschlecht: <input type='text' name='geschlecht' /><br>";
echo "Schwerpunkt: <input type='text' name='schwerpunkt' /><br><br>";
echo "<input type='submit' value='Suchen' />";
echo "</form>";
?>
 <?php
if(!empty($_POST["typ"])){/* Wenn das Feld einen Inhalt hat */

/* Erweiterter SQL-Befehl, wenn nach Eingabe gefiltert */
$zusatz "WHERE typ LIKE '%".$POST["typ"]."%' OR rasse LIKE
'%".$POST["rasse"]."%'";

}
else{ // wenn der Inhalt leer ist...
$zusatz="";
}
?>
 <?php
$abfrage "SELECT * FROM zsavenue/Pferd ".$zusatz;
$ergebnis mysql_query('$abfrage');
?>
 <?php
while($row mysql_fetch_object('$ergebnis'))
// Hier eure gewöhnliche Ausgabe von Tuts o.Ä. zB.
{
echo "<div>";
echo "<a href='Pferd.php?id=".$row->id."'>Link zum Pferd</a>";
echo "</div>";
}
?>
kext
So gibt man das aber nicht an. Datenbankname und Tabelle trennt man mit einem Punkt (».«). Außerdem ist es besser, Feld-, Tabellen- und Datenbanknamen in so genannte Backticks (»`«) einzuschließen.

php:
1:
$abfrage "SELECT * FROM `zsavenue`.`Pferd` ".$zusatz;
Vielleicht solltest Du zunächst einmal die Grundlagen lernen, bevor Du Dich an so ein Projekt wagst.
Raindrops
so ich hab's jetzt soweit. Das letzte Problem besteht nun darin, dass wenn ich in die Suche etwas eingebe und abschicke, kommt eine Fehlermeldung, klicke ich aber direkt auf die datei, die das suchererbnis anzeigen soll, kommt keine.

klick zur Suche
klick zum "Suchergebnis"

Code der Suche:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
<? include('db.php'); ?>
<body>
<?
echo "
<form action='durchsuchen_rechts.php' target='main' method='POST'>
<table>
<tr>
<td>Name:</td>
<td><input type='text' name='name'></td>
</tr>
<td>Rasse:</td>
<td><input type='text' name='rasse'></td>
</tr>
<tr>
<td>Geschlecht:</td>
<td><input type='text' name='geschlecht'></td>
</tr>
<tr><td>Farbe:</td>
<td><input type='text' name='farbe'></td>
</tr>
<tr><td>Schwerpunkt:</td>
<td><input type='text' name='schwerpunkt'></td>
</tr>
</table>
<input type='submit' name='send' value='Durchsuchen'><br>

</form><br>";
?>

Fülle einfach alle Felder aus, nach denen du suchen möchtest. Wenn du ein Feld nicht ausfüllst, wird es einfach ausgelassen. Zudem reicht es, wenn du ungefähre Bezeichnungen eingibst. Zum Beispiel "Reitp" für ein Deutsches Reitpony, ein Britisches Reitpony, ...
</body>
</html>


Code des Suchergebnisses:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
<? include('db.php'); ?>
<body>
<?
$pferd = $_POST[name];
$rasse = $_POST[rasse];
$geschlecht = $_POST[geschlecht];
$farbe = $_POST[farbe];
$schwerpunkt = $_POST[schwerpunkt];

if($_GET[send] == 'Durchsuchen' OR $_POST[send] == 'Durchsuchen')
{
$sql1 = "SELECT * FROM pferde WHERE anzeige = 'Verkauf'";
if($name != '')
{
$sql2 = "AND name LIKE '%$pferd%'";
}
if($rasse != '')
{
$sql3 = "AND rasse LIKE '%$rasse%'";
}
if($farbe != '')
{
$sql4 = "AND farbe LIKE '%$farbe%'";
}
if($geschlecht != '')
{
$sql5 = "AND geschlecht LIKE '%$geschlecht%'";
}
{
$sql6 = "AND schwerpunkt LIKE '%$schwerpunkt%'";
}
$sql5 = "ORDER BY name";
$sql = $sql1.$sql2.$sql3.$sql4.$sql5.$sql6;
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
if($anzahl > '1')
{
echo "<table width='255px'>
<tr>
<td style='background-color: #F0DEB8; border: 1px solid' align='center'><i>$anzahl Pferde wurden gefunden</i></td>
</tr>
</table>";
}
if($anzahl == '1')
{
echo "<table width='255px'>
<tr>
<td style='background-color: #F0DEB8; border: 1px solid' align='center'><i>$anzahl Pferd wurde gefunden</i></td>
</tr>
</table>";
}

if($anzahl != '0')
{
echo "<div style='height: 385px; width: 280px; overflow: auto'>
";
while($row = mysql_fetch_assoc($result))
         {
         $id = $row[pferdid];
         $name = $row[name];
         $namen = urlencode($name);
         $title = $row[beschreibung];
         $rasse = $row[rasse];
    $monat3 = $row[monat];
    $tag3 = $row[tag];
    $jahr3 = $row[jahr];
    $jetzt = mktime(0,0,0,date("m"),date("d"),date("Y"));
    $geburtstag = mktime(0,0,0,$monat3,$tag3,$jahr3);
    $alter   = intval(($jetzt - $geburtstag) / (3600 * 24 * 365));
    $foto = $row[fotograf];
    $fotolink = $row[foto];
         echo "<table width='250px' id='1'>
<tr>
<td style='background-color: #F0DEB8; border: 1px solid' align='center'><h4>$name</h4>Wird gepflegt von <i>$row[pfleger]</i></td>
</tr>
<tr>
<td><img src='/pferde/$namen+vor.jpg' border='1'></td>
</tr>

<tr>
<td style='background-color: #F0DEB8; border: 1px solid' align='center'>Foto von <a href='$fotolink' target='_blank'>$foto</a></td>
</tr>


<tr>
<td><a href='buch_allgemeines.php?id=$id' target='mitte'><img src='/informationen.png' border='0'></a></td>
</tr>


</table>

<br>";
}
echo "</div>";
}
else
{
echo "<i>Kein Pferd entspricht deinen Vorstellungen</i>";
}
}
?>
</body>
</html>
kext
Vor jedes „AND“ muss ein Leerzeichen.
Raindrops
das bringt nichts. Hab da überall Leerzeichen vor gemacht, die Fehlermeldung verändert das aber überhaupt nicht.

edit. einen Fehler habe ich nun selbsttändig beheben können, den in Zeile 58. Es muss also nur noch der Fehler gefunden werden, der für den Fehler in Zeile 36 verantwortlich ist.
Nanni
Bei mir kommt zwar nur die Meldung, dass kein Pferd meinen Vorstellungen entspricht. Aber schau mal, in Zeile 32 - meinst du da statt sql5 sql7? sonst überschreibst du die Variable ja (deswegen finde ich auch kein Pferd, wenn ich nach Hengst suche).
Irgendwie fehlt dir auch ein if für den Schwerpunkt Augenzwinkern Schau dir die Stelle vielleicht nochmal in Ruhe an.