[PHP & MySQL] If-Abfrage für Deckplan

nymphy
Huhu

folgender 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:
<head>
<link href="stylemain.css" type="text/css" rel="stylesheet">
</head>
<body>
Unser aktueller Deckplan. Sobald ein Fohlen geboren wurde/eingetragen wurde, verschwindet der EIntrag sichtbar.
Für Statistiken etc. wird der Datenbankeintrag allerdings erhalten.
<br>
<table border=1 style="border-collapse:collapse";>
<tr>
<td><b>Besitzer der Stute</b></td><td><b>Besitzer des Hengstes</b></td><td><b>Stute</b></td><td><b>Hengst</b></td><td><b>Fohlenname</b></td><td><b>M/W</b></td><td><b>Abfohldatum</b></td>
</tr>
<?php
   include('db.php');

   $sql "SELECT besitzer_stute, id, besitzer_hengst, stute, hengst, hengst_rasse, name_fo_hengst, name_fo_stute, geschlecht, deckdatum, abfohldatum FROM deckplan WHERE eingetragen = '' ORDER BY `id` DESC";
   $result mysql_query($sql);

   while ($Data mysql_fetch_assoc($result)) {
      echo "
<tr>
<td>$Data[besitzer_stute]</td><td>$Data[besitzer_hengst]</td><td><?php include('db.php');
$ergebnis=mysql_query("SELECT name_fo_hengstname_fo_stutegeschlecht FROM deckplan"); 
$Data=mysql_fetch_assoc($ergebnis); //Datensatz als Array in $Data packen
if($Data["geschlecht"] >= w)
{
     echo "$Data[name_fo_stute]";
}
else
{
     echo "$Data[name_fo_hengst]";
}
?>
</td><td>$Data[geschlecht]</td><td>$Data[abfohldatum]</td>
</tr>";
  }
   mysql_close();
?>

</table>
</body>
</html>


erzeugt folgenden Fehler : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /users/allertal/www/welcome/deckplan.php on line 22

Ich hab auch ehrlich gesag keine Ahnung von if-abfragen :/ war jetz so mein erster Spontanversuch.
Leila
In Z. 21 vor dem <php das echo beenden und der übersicht halber empfehle ich nen Zeilenumbruch
nymphy
Hm... das hat auch nich geklappt, weil er dann nur den 1. Eintrag der Datenbank bei den Namen überall angezeigt hat und kein Geschlecht und kein Abfohhldatum... jetz hab ich gebastelt.. zwischen zeitlich hatte er dann das Geschlecht etc. wieder drin aber nur von der neusten Eintragung. und nun siehts so aus :

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:

<?php
    include('db.php');

       $sql "SELECT besitzer_stute, id, besitzer_hengst, stute, hengst, hengst_rasse, name_fo_hengst, name_fo_stute, geschlecht, deckdatum, abfohldatum FROM deckplan WHERE eingetragen = '' ORDER BY `id` DESC";
       $result mysql_query($sql);

       while ($Data mysql_fetch_assoc($result)) {
        
        $stutenbesitzer $Data['besitzer_stute'];
        $hengstbesitzer $Data['besitzer_hengst'];
        $geschlecht        $Data['geschlecht'];
        $abfohldatum    $Data['abfohldatum'];
        
          echo "<tr>
            <td>$stutenbesitzer</td>
            <td>$hengstbesitzer</td>
            <td>";
            
       $sql "SELECT besitzer_stute, id, besitzer_hengst, stute, hengst, hengst_rasse, name_fo_hengst, name_fo_stute, geschlecht, deckdatum, abfohldatum FROM deckplan WHERE eingetragen = '' ORDER BY `id` DESC";
       $result mysql_query($sql);

       while ($Data mysql_fetch_assoc($result)) {
        
        if ($Data['geschlecht'] >= w) {
             echo "$Data[name_fo_stute]";
        } else {
             echo "$Data[name_fo_hengst]";
        }
        
        echo "</td>
            <td>$geschlecht</td>
            <td>$abfohldatum</td>
        </tr>";
      }
       mysql_close();
?>


und folgender Fehler : Parse error: syntax error, unexpected $end in /users/allertal/www/welcome/deckplan.php on line 57
Nanni
Du hast zwei while-Schleifen begonnen, aber nur eine geöffnet. Hinter die } in der vorletzten Zeile noch eine, jedenfalls hoff ich, dass sie dort hingehört.
Übrigens könntest du es, sollte es danach immer noch Ärger geben, mal mit $Data2 = ...; $Data2[Pferd] u.s.w. in der zweiten Abfrage probieren.
*Sassy*
edit: ah du bist ja schon weiter, so weit hab ich jetzt gar net geguckt xD
gut ich nehms zurück was ich geschrieben habe großes Grinsen


lg
Baronesse
Ich hab da mal eine Frage zu deinem Code...
Wo bzw. mit welchem Wert belegst du denn die Variable "w" die hier vorkommt?
Entweder müsste dann da stehen $w und irgendwo muss die Variable definiert sein, oder du müsstest da einen Zahlwert eingeben.
>= '' ist mit einem Zeichentyp nicht machbar, soweit ich das weiß oder du machst folgendes:
if($Data['geschlecht'] == 'w'){....
}

php:
1:
2:
3:
4:
5:
if ($Data['geschlecht'] >= w) { 
echo "$Data[name_fo_stute]"; 
}
 else { echo "$Data[name_fo_hengst]"; 
}
nymphy
w ist ein wert der ausgelesen werden soll bei der abfrage der datenbank inhalte