Es will einfach nicht funktionieren

exxtreme

Grünschnabel
Das Script prüft die Datenbank und gibt anhand des Datums die neusten vier Bilder raus. Unter dem Bild steht dann die Bezeichnung und die Farbe (auf englisch). Ich möchte aber, dass nun die englische Farbbezeichnung in deutsch ausgegeben wird. Was mache ich falsch?
 
Zuletzt bearbeitet:
Versuch die Ausgabe mal so:
PHP:
while($result = mysql_fetch_array($results))
{
    petclrimage($result['pet'], $colours_de[$result[colour]], "", $tempurl[0], $preurl, $posturl, false, ($result['status'] == 2 ? "normal" : ($result['status'] == 1 ? "unreleased" : "noexists")), $result['dateonserver']);
}
 
Ich denke du musst

Code:
petclrimage($result['pet'], $color_de[$result['colour']], "",

machen. Falls es das nicht ist, schreib mal, die deine DB aussieht, vlt. kann man da ne effizientere Lösung geben.

Gruß casb
 
PS: du musst in der petclrimage-Funktion aus $colours_de[$colour[$i]] zu $colours_de[$colour] machen, denn $colour ist kein Array sondern ein String soweit ich das sehe. Also


PHP:
function petclrimage($pets, $colour, $colours_de, $pose, $posename, $preurl, $posturl, $withpn, $class="", $date = -1)
{
    for($i = 0; $i < count($colour); $i++) {
    echo("<td ".($class != "" ? ("class=\"".$class."\"") : "")."><a href=\"viewclrs.php?colour=".$colour."&amp;pet=".$pet."\"><img src=\"".$preurl.strtolower($pet)."_".strtolower($colour).$posturl."\" alt=\"".$posename." ".$colours_de[$colour]." ".$pet."\" /><br />".($withpn ? $posename : "")." ".$colours_de[$colour]." ".$pet."</a>".($date != -1? ("<br /><smallfont>".date("j F Y", $date)):"")."</smallfont></td>");
  }
}
 
hmm, ich denke, du solltest deine Struktur nochmal überdenken, du rufst
PHP:
petclrimage($result['pet'], $result['colour'], "",
auf, $result['colour'] ist ein String.
in der petclrimage-Funktion nutzt du dieses aber als Array
PHP:
for($i = 0; $i < count($colour); $i++) {
und später ist es nach deinem ersten Post auch unklar, als was du es nutzt:
PHP:
$posename." ".$colours_de[$colour[$i]]." ".$pet."\" /><br />".($withpn ? $posename : "")." ".$colours_de[$colour]." ".
also einmal $colour als String, einmal als Array.
 
Da die Bilder von einem anderen Server geladen werden, setzt sich die Bild URL halt aus den Begriffen "Pet", "Colour", "Pose" zusammen. Bei <img src="..." muss also der engliche Begriff erhalten bleiben, damit das Bild auch angezeigt werden kann. Unter dem Bild wird jedoch nochmal die Bezeichnung als Text angezeigt. Und erst da, soll anstatt z.B. Blue das Wort Blau angezeigt werden.

Ich bin da schon seit Tagen dran und inzwischen so durcheinander, dass ich alles nur noch schlimmer mache :-)
 
schau nochmal wegen meinem Statement 27.05.06, 14:23, dass du einfach das [$i] raus machst, denn das ist ein Array-Befehl auf einen String, damit kommst du nicht weit. Ansonsten mach mal nen Debug, damit du siehst, wie die Variablen aussehen, vielleicht findest du dann deinen Fehler.

PHP:
function petclrimage($pets, $colour, $colours_de, $pose, $posename, $preurl, $posturl, $withpn, $class="", $date = -1) 
{ 
    $ar = func_get_args();
    var_dump( $ar );

    for($i = 0; $i < count($colour); $i++) { 
    echo("<td ".($class != "" ? ("class=\"".$class."\"") : "")."><a href=\"viewclrs.php?colour=".$colour."&amp;pet=".$pet."\"><img src=\"".$preurl.strtolower($pet)."_".strtolower($colour).$posturl."\" alt=\"".$posename." ".$colours_de[$colour]." ".$pet."\" /><br />".($withpn ? $posename : "")." ".$colours_de[$colour]." ".$pet."</a>".($date != -1? ("<br /><smallfont>".date("j F Y", $date)):"")."</smallfont></td>"); 
  } 
}

[EDIT:] nicht func_num_args, sondern func_get_args [/EDIT]
 
Übrigens, es kann bei deinem Funktionsaufruf nicht funktionieren... Schau mal hier:
PHP:
# Deine Funktion
function petclrimage($pets, $colour, $colours_de, $pose, $posename, $preurl, $posturl, $withpn, $class="", $date = -1)

# Dein Aufruf
petclrimage($result['pet'], $result['colour'], "", $tempurl[0], $preurl, $posturl, false, ($result['status'] == 2 ? "normal" : ($result['status'] == 1 ? "unreleased" : "noexists")), $result['dateonserver']);
Du setzt $colours_de mit "" gleich, also kannst du auch nicht darauf zugreifen...
 
Zurück