Problem mit foreach()

absyrtos

Mitglied
Ich habe folgendes Problem. Bei meinem Script soll je nach Auswahl im Dropdown Menü ein bestimmter Inhalt angezeigt werden. Das funktioniert soweit ganz gut bis auf eine Sache. Wenn man Pet+Farbe+Alle (Standard) auswählt sollen alle möglichen Posen von Pet+Farbe ausgegeben werden. Dies passiert aber nur zum Teil richtig:

http://neocolours.de/beta/petdb.php?colour=Darigan&pet=Acara&pose=

Zudem sollen immer nur 4 Bilder in einer Reihe angezeigt werden und nicht alles in einer. Und das letzte Bild ist wieder das erste was auch nicht passieren soll. Was mache ich falsch? So bin ich vorgegangen:

PHP:
<?php require("includes/petcfg.php");

echo("<h2>Neocolours &raquo; Pet Datenbank &raquo; ".$colours_de[$colour]." ".$pet."</h2>\n");
echo("<table><tr>");

if($pet == "" && $colour == "") { $where = "ORDER BY pet"; }
else if ($pet == "") { $where = "WHERE colour = '$colour' ORDER BY pet"; }
else if ($colour == "") { $where = "WHERE pet = '$pet' ORDER BY colour"; }
else if ($pose == "") { $where = "WHERE pet = '$pet' AND colour = '$colour'";

foreach($poses as $apose)
{
    $tempurl = getpreposturl($apose);
    $posename = $tempurl[0]; $preurl = $tempurl[1]; $posturl = $tempurl[2];
    
    $sql = "SELECT pet, colour, status, UNIX_TIMESTAMP(dateonserver) AS dateonserver FROM neocolours_pets $where";
    $erg = mysql_query($sql) OR die(".mysql_error()");
    if(mysql_num_rows($erg))
    {
      $i=0;
      while($result = mysql_fetch_array($erg))
      {
        $i++;
        petimage($result['pet'], $colours_de[$result['colour']], $result['colour'], "", $tempurl[0], $preurl, $posturl, true, ($presult['status'] == 2 ? "normal" : ($result['status'] == 1 ? "unreleased" : "noexists")), $result['dateonserver']);
        if ($i % 4 == 0) {echo '</tr><tr>';}
      }
    }
  }
}

else { $where = "WHERE pet = '$pet' AND colour = '$colour'"; }

$tempurl = getpreposturl($pose);
$posename = $tempurl[0]; $preurl = $tempurl[1]; $posturl = $tempurl[2];

$sql = "SELECT pet, colour, status, UNIX_TIMESTAMP(dateonserver) AS dateonserver FROM neocolours_pets $where";
$erg = mysql_query($sql) OR die(".mysql_error()");
if(mysql_num_rows($erg))
{
  $i=0;
  while($result = mysql_fetch_array($erg))
  {
    $i++;
    petimage($result['pet'], $colours_de[$result['colour']], $result['colour'], "", $tempurl[0], $preurl, $posturl, false, ($result['status'] == 2 ? "normal" : ($result['status'] == 1 ? "unreleased" : "noexists")), $result['dateonserver']);
    if ($i % 4 == 0) {echo '</tr><tr>';}
  }
}
else echo"<td align=\"center\"><img src=\"http://www.tutorials.de/forum/images/database.gif\" alt=\"\" /><br /><b>Keine Einträge in der Datenbank gefunden!</b></td>\n";
echo("</tr></table>");
?>
 
Zuletzt bearbeitet:
Zurück