Trotz Einschränkung - alle Pferde werden angezeigt

Raindrops
Hey,

ich habe ein kleines Problem: Für das Ponygestüt Kingston habe ich die Seite Ponystuten.php erstellt, wo via PHP alle unserer zuchtbereiten Ponystuten angezeigt werden sollen. Doch nachdem ich die Einschränkung "Jahrgang" hinzugefügt hatte, wurden auch die Hengste angezeigt, was nicht soll. Entferne ich diese Einschränkung wieder, werden nur die Stuten angezeigt - allerdings auch die Stutfohlen. Ich weiß mir da jetzt gerade nicht zu helfen - kann mir da vvlt jemand weiterhelfen?

Hier wäre die Seite Ponystuten.php

Und hier der dazugehörende 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:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
<html>

<head>

<title>Stuten</title>
<link rel="stylesheet" href="style.css">


</head>

<body>
<center><b>Zuchtstuten</b>
<br><br>
Hier findest du alle Stuten auf einen Blick. Suchst du also keine bestimmte Rasse kannst du hier einfach mal durchstöbern. Wenn du auf der Suche nach einer Zuchtstute einer bestimmten Rasse bist, musst du einfach nur auf den Namen der Rasse klicken und alle Pferde, die nicht der gesuchten Rasse entsprechen, werden ausgeblendet.
<br><br>

<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM Pferd WHERE geschlecht='Stute' AND jahrgang='3 vor Kingston' OR '4 vor Kingston' OR '5 vor Kingston' OR '6 vor Kingston' OR '7 vor Kingston' OR '8 vor Kingston' OR '9 vor Kingston' ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
    echo " Momentan haben wir keine Zuchtstuten dieser Rasse";
    }
 else { 
        while($Data mysql_fetch_array($Ergebnis)) {
         echo "

<table border="2" cellpadding="3" cellspacing="2" style="border-collapsecollapse" bordercolor="#FFFFFF" width="100%" height="190">
  <tr1>
    <td class="uberschrift" colspan="3" rowspan="1">$Data[Name]</td>
  </tr>
  <tr>
    <td border="2" class="dunkel" colspan="1" rowspan="6" width="33%"><img src="$Data[Vorschaubild]"></td>
    <td class="mittel" width="33%"><b>Jahrgang</b></td>
    <td class="hell" width="33%">$Data[Jahrgang]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Rasse</b></td>
    <td class="hell">$Data[Rasse]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Farbe</b></td>
    <td class="hell">$Data[Farbe]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Stockmaß</b></td>
    <td class="hell">$Data[Stockmaß]</td>
  </tr>
  <tr1>
    <td class="uberschrift" colspan="2" rowspan="1" color="#f3edd5"><b><a href="Pferd.php?id=$Data[ID]">mehr Informationen</a></b></td>
  </tr>
</table><br><br>
";
    }
}
?>
</center>
</body>

</html>


Wäre super, wenn mir da jemand helfen könnte! (=

LG
Black Katrin
dir fehlen die klammern

mach mal um die wo dein OR sind, also die jahrgänge, ne klammer, dann dürfte es klappen
Raindrops
hm, ich hab jetzt mal Klammern drum geschrieben, aber das Problem bleibt anch wie vor bestehen :/

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:
<html>

<head>

<title>Stuten</title>
<link rel="stylesheet" href="style.css">


</head>

<body>
<center><b>Zuchtstuten</b>
<br><br>
Hier findest du alle Stuten auf einen Blick. Suchst du also keine bestimmte Rasse kannst du hier einfach mal durchstöbern. Wenn du auf der Suche nach einer Zuchtstute einer bestimmten Rasse bist, musst du einfach nur auf den Namen der Rasse klicken und alle Pferde, die nicht der gesuchten Rasse entsprechen, werden ausgeblendet.
<br><br>

<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM Pferd WHERE geschlecht='Stute' AND jahrgang=('3 vor Kingston') OR ('4 vor Kingston') OR ('5 vor Kingston') OR ('6 vor Kingston') OR ('7 vor Kingston') OR ('8 vor Kingston') OR ('9 vor Kingston') ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
    echo " Momentan haben wir keine Zuchtstuten dieser Rasse";
    }
 else { 
        while($Data mysql_fetch_array($Ergebnis)) {
         echo "

<table border="2" cellpadding="3" cellspacing="2" style="border-collapsecollapse" bordercolor="#FFFFFF" width="100%" height="190">
  <tr1>
    <td class="uberschrift" colspan="3" rowspan="1">$Data[Name]</td>
  </tr>
  <tr>
    <td border="2" class="dunkel" colspan="1" rowspan="6" width="33%"><img src="$Data[Vorschaubild]"></td>
    <td class="mittel" width="33%"><b>Jahrgang</b></td>
    <td class="hell" width="33%">$Data[Jahrgang]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Rasse</b></td>
    <td class="hell">$Data[Rasse]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Farbe</b></td>
    <td class="hell">$Data[Farbe]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Stockmaß</b></td>
    <td class="hell">$Data[Stockmaß]</td>
  </tr>
  <tr1>
    <td class="uberschrift" colspan="2" rowspan="1" color="#f3edd5"><b><a href="Pferd.php?id=$Data[ID]">mehr Informationen</a></b></td>
  </tr>
</table><br><br>
";
    }
}
?>
</center>
</body>

</html>
+Debbie+
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:
<html>

<head>

<title>Stuten</title>
<link rel="stylesheet" href="style.css">


</head>

<body>
<center><b>Zuchtstuten</b>
<br><br>
Hier findest du alle Stuten auf einen Blick. Suchst du also keine bestimmte Rasse kannst du hier einfach mal durchstöbern. Wenn du auf der Suche nach einer Zuchtstute einer bestimmten Rasse bist, musst du einfach nur auf den Namen der Rasse klicken und alle Pferde, die nicht der gesuchten Rasse entsprechen, werden ausgeblendet.
<br><br>

<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM Pferd WHERE geschlecht='Stute' AND jahrgang='3 vor Kingston' OR jahrgang='4 vor Kingston' OR jahrgang='5 vor Kingston' OR jahrgang='6 vor Kingston' OR jahrgang= '7 vor Kingston' OR jahrgang='8 vor Kingston' OR jahrgang='9 vor Kingston' ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
    echo " Momentan haben wir keine Zuchtstuten dieser Rasse";
    }
 else { 
        while($Data mysql_fetch_array($Ergebnis)) {
         echo "

<table border="2" cellpadding="3" cellspacing="2" style="border-collapsecollapse" bordercolor="#FFFFFF" width="100%" height="190">
  <tr1>
    <td class="uberschrift" colspan="3" rowspan="1">$Data[Name]</td>
  </tr>
  <tr>
    <td border="2" class="dunkel" colspan="1" rowspan="6" width="33%"><img src="$Data[Vorschaubild]"></td>
    <td class="mittel" width="33%"><b>Jahrgang</b></td>
    <td class="hell" width="33%">$Data[Jahrgang]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Rasse</b></td>
    <td class="hell">$Data[Rasse]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Farbe</b></td>
    <td class="hell">$Data[Farbe]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Stockmaß</b></td>
    <td class="hell">$Data[Stockmaß]</td>
  </tr>
  <tr1>
    <td class="uberschrift" colspan="2" rowspan="1" color="#f3edd5"><b><a href="Pferd.php?id=$Data[ID]">mehr Informationen</a></b></td>
  </tr>
</table><br><br>
";
    }
}
?>
</center>
</body>

</html>


An den Klammern wirds nicht liegen, aber probier es mal so.
Nanni
Ich denke doch dass es an den Klammern liegt, du hast sie nur falsch gesetzt Augenzwinkern
Deine Abfrage sucht nämlich wo: Das Geschlecht Stute und Jahrgang 3 vor Kingston ist, oder Jahrgang 4 vor Kingston ist (egal welches Geschlecht) - usw. ´Das vor dem AND vergisst er dann ja schon, durch das OR wird das quasi "entkoppelt". Daher die Klammern so setzen:

php:
1:
$Ergebnis mysql_query("SELECT * FROM Pferd WHERE geschlecht='Stute' AND (jahrgang='3 vor Kingston' OR jahrgang='4 vor Kingston' OR jahrgang='5 vor Kingston' OR jahrgang='6 vor Kingston' OR jahrgang= '7 vor Kingston' OR jahrgang='8 vor Kingston' OR jahrgang='9 vor Kingston') ORDER BY Name");


Ist eigentlich ganz logisch, wenn du in der Mathematik Klammern setzt, setzt die diese ja auch nicht um einzelne Ziffern Augenzwinkern
Raindrops
Ahh, danke Nanni, jetzt sind schonmal die Hengste weg (= Allerdings wird unser Stutfohlen noch bei den Zuchtstuten angezeigt, das sollte da auch noch weg. Ich weiß aber elider nicht, wie ich es da wegbekomme - kannst du mir da vvlt. auch noch helfen? großes Grinsen Wäre seehr nett (=

LG
Nanni
Öh.. zeigst du nochmal den Code, so wie er jetzt ist? Eigentlich sollte das 0 vor Kingston geborene da nicht angezeigt werden... xD
Raindrops
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:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
<html>

<head>

<title>Stuten</title>
<link rel="stylesheet" href="style.css">


</head>

<body>
<center><b>Zuchtstuten</b>
<br><br>
Hier findest du alle Stuten auf einen Blick. Suchst du also keine bestimmte Rasse kannst du hier einfach mal durchstöbern. Wenn du auf der Suche nach einer Zuchtstute einer bestimmten Rasse bist, musst du einfach nur auf den Namen der Rasse klicken und alle Pferde, die nicht der gesuchten Rasse entsprechen, werden ausgeblendet.
<br><br>

<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM Pferd WHERE geschlecht='Stute' AND (jahrgang='3 vor Kingston' OR '4 vor Kingston' OR '5 vor Kingston' OR '6 vor Kingston' OR '7 vor Kingston' OR '8 vor Kingston' OR '9 vor Kingston') ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
    echo " Momentan haben wir keine Zuchtstuten dieser Rasse";
    }
 else { 
        while($Data mysql_fetch_array($Ergebnis)) {
         echo "

<table border="2" cellpadding="3" cellspacing="2" style="border-collapsecollapse" bordercolor="#FFFFFF" width="100%" height="190">
  <tr1>
    <td class="uberschrift" colspan="3" rowspan="1">$Data[Name]</td>
  </tr>
  <tr>
    <td border="2" class="dunkel" colspan="1" rowspan="6" width="33%"><img src="$Data[Vorschaubild]"></td>
    <td class="mittel" width="33%"><b>Jahrgang</b></td>
    <td class="hell" width="33%">$Data[Jahrgang]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Rasse</b></td>
    <td class="hell">$Data[Rasse]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Farbe</b></td>
    <td class="hell">$Data[Farbe]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Stockmaß</b></td>
    <td class="hell">$Data[Stockmaß]</td>
  </tr>
  <tr1>
    <td class="uberschrift" colspan="2" rowspan="1" color="#f3edd5"><b><a href="Pferd.php?id=$Data[ID]">mehr Informationen</a></b></td>
  </tr>
</table><br><br>
";
    }
}
?>
</center>
</body>

</html>
+Debbie+
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:
<html>

<head>

<title>Stuten</title>
<link rel="stylesheet" href="style.css">


</head>

<body>
<center><b>Zuchtstuten</b>
<br><br>
Hier findest du alle Stuten auf einen Blick. Suchst du also keine bestimmte Rasse kannst du hier einfach mal durchstöbern. Wenn du auf der Suche nach einer Zuchtstute einer bestimmten Rasse bist, musst du einfach nur auf den Namen der Rasse klicken und alle Pferde, die nicht der gesuchten Rasse entsprechen, werden ausgeblendet.
<br><br>

<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM Pferd WHERE geschlecht='Stute' AND jahrgang IN ('3 vor Kingston', '4 vor Kingston', '5 vor Kingston', '6 vor Kingston', '7 vor Kingston', '8 vor Kingston', '9 vor Kingston') ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
    echo " Momentan haben wir keine Zuchtstuten dieser Rasse";
    }
 else { 
        while($Data mysql_fetch_array($Ergebnis)) {
         echo "

<table border="2" cellpadding="3" cellspacing="2" style="border-collapsecollapse" bordercolor="#FFFFFF" width="100%" height="190">
  <tr1>
    <td class="uberschrift" colspan="3" rowspan="1">$Data[Name]</td>
  </tr>
  <tr>
    <td border="2" class="dunkel" colspan="1" rowspan="6" width="33%"><img src="$Data[Vorschaubild]"></td>
    <td class="mittel" width="33%"><b>Jahrgang</b></td>
    <td class="hell" width="33%">$Data[Jahrgang]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Rasse</b></td>
    <td class="hell">$Data[Rasse]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Farbe</b></td>
    <td class="hell">$Data[Farbe]</td>
  </tr>
  <tr>
    <td class="mittel"><b>Stockmaß</b></td>
    <td class="hell">$Data[Stockmaß]</td>
  </tr>
  <tr1>
    <td class="uberschrift" colspan="2" rowspan="1" color="#f3edd5"><b><a href="Pferd.php?id=$Data[ID]">mehr Informationen</a></b></td>
  </tr>
</table><br><br>
";
    }
}
?>
</center>
</body>

</html>


Versuchs mal so. Mehrfachabfragen macht man nämlich eigentlich so z.B. WHERE feld IN ('Wert 1', 'Wert 2', 'Wert 3') Augenzwinkern
Raindrops
Damit wären allerdings die Hengste wieder da...und das Fohlen auch noch ^^
+Debbie+
Hab das mal auf meinen Webserver geladen und da funktioniert das so einwandrei. Es werden weder Hengste noch Fohlen angezeigt.
Raindrops
Ah okay, danke (: hatte irgendwie den Code nicht vernünftig gespeichert ^^ Jetzt gehts aber
+Debbie+
Okay, dann ist ja gut smile