imagedestroy tuts nicht

Tix

Erfahrenes Mitglied
Hallo zusammen,

ich habe mir ein Script geschrieben, welches Bilder verkleinern soll, und diese dann ausgeben soll.
Ich habe allerdings das Problem, dass das Script immer das gleiche Bild ausgibt, zwar verkleinert, aber es sollte verschiedene ausgeben. Kann mir jemand helfen?

Hier mein Quelltext:

PHP:
$bildname = session_id() . 'resize.jpg';

$link = mysql_connect("localhost","bloemker","tixomat");
mysql_select_db("bloemker",$link);
$sql = "SELECT * from verkauf ORDER BY id ASC"; 
$result = mysql_query($sql,$link);
$rowcount = mysql_num_rows($result);
echo ("<div align=\"center\"><table border=\"0\"><tr><td>\n");
for($row=0;$row<$rowcount;$row++){
$zeile = mysql_fetch_array($result);

echo ("                        <table width=\"600\" border=\"0\">\n");
echo ("                          <tr height=\"15\">\n");
echo ("                            <td valign=\"top\" width=\"152\" rowspan=\"4\">\n");

$pfad = $zeile["bild1"];
$url = explode("\\", $pfad);
$dateiname = "images/verkauf/" . $url[count($url)-1];
$image =  $dateiname; 
if (file_exists($dateiname)) {           
$size = getimagesize("$image");
$height_alt = $size[1];
$width_alt = $size[0];
$width_neu = 150;
$height_neu_gen = $height_alt * $width_neu / $width_alt;
$height_neu = round($height_neu_gen);
$thumb = imagecreatetruecolor ($width_neu, $height_neu);
switch ($size[2]){
  case "1": $img_source = ImageCreateFromGIF ($image);break;
  case "2": $img_source = ImageCreateFromJPEG ($image); break;
  case "3": $img_source = ImageCreateFromPNG ($image); break;
  default: $img_source = ImageCreateFromWBMP ($image);
}
ImageCopyResampled ($thumb, $img_source, 0, 0, 0, 0, $width_neu, $height_neu, $width_alt, $height_alt);
ImageInterlace ($thumb, 1);
ImageJPEG ($thumb, $bildname, 100);
echo ("<a href=\"immobilien_verkauf_detail.php?object=" . $zeile["id"] . "\" target=\"_self\"><img src=\"" . $bildname  . "\" border=\"0\"></a>\n");
imagedestroy ($thumb); 
} else {
echo ("<a href=\"immobilien_verkauf_detail.php?object=" . $zeile["id"] . "\" target=\"_self\"><img src=\"/images/fehler.gif\" border=\"0\"></a>\n");
}


echo ("                            </td>\n");
echo ("                            <td height=\"5\" valign=\"top\" bgcolor=\"#C5D6FE\" colspan=\"2\"><a href=\"immobilien_verkauf_detail.php?object=" . $zeile["id"] . "\" target=\"_self\"><b>" . $zeile["ueberschrift"] . "</b></a></td>\n");
echo ("                          </tr>\n");
echo ("                          <tr>\n");
echo ("                            <td height=\"5\" valign=\"top\" width=\"213\">" . $zeile["plz"] . " " . $zeile["ort"] . "</td>\n");
echo ("                            <td height=\"5\" valign=\"top\" width=\"213\">Kaufpreis: " .  $zeile["kaufpreis"] . " &euro;<br>Wohnfläche: " . $zeile["wohnflaeche"] . " m&sup2;</td>\n");
echo ("                          </tr>\n");
echo ("                          <tr>\n");
echo ("                            <td height=\"5\" valign=\"top\">&nbsp;</td>\n");
echo ("                            <td height=\"5\" valign=\"top\">&nbsp;</td>\n");
echo ("                          </tr>\n");
echo ("                          <tr>\n");
echo ("                            <td height=\"5\" valign=\"top\">&nbsp;</td>\n");
echo ("                            <td height=\"5\" valign=\"top\">&nbsp;</td>\n");
echo ("                          </tr>\n");
echo ("                        </table><br>\n");                
}
echo ("</td></tr></table></div>");
 
Hi,

ich glaube das Problem liegt nicht in imagedestroy(); sondern in deiner Ablauflogik des Scripts.

Folgendes:
PHP:
for($row=0;$row<$rowcount;$row++){
$zeile = mysql_fetch_array($result);
// gekürzt
$pfad = $zeile["bild1"];
$url = explode("\\", $pfad);
$dateiname = "http://www.tutorials.de/forum/images/verkauf/" . $url[count($url)-1];
$image =  $dateiname; 
// ....
Du hast ausserhalb der FOR Schleife die SQL Abfrage.
Dann beginnst du die Schleife und führst eine fetch_array durch, mit der Ressource der SQL Abfrage.
Mit dem Ergebnis davon ermittelst du dein 1. Bild. Es wird also aus der SQL Abfrage der Wert 'bild1' genommen und im Endeffekt daraus das Bild erstellt.
Beim 2. Durchlauf der FOR Schleife "exakt" das gleiche. $url hat den gleichen wert wie beim 1. Durchlauf, da $url aus $pfad bebildet wird und Pfad aus der SQL Abfrage kommt, die bei jedem FOR durchlauf neu definiert wird ($zeile = mysql_fetch_array($result);).

Habs etwas umständlich geschrieben, aber das Problem ist das $zeile bei jedem FOR durchlauf die Daten neu holt.

Gruss
 
Die for-Schleife endet erst in der vorletzten Zeile des ganzen Scripts.
Also daran kann es auch nich liegen. Vielleicht hast du das ganze mit der if-Schleife innerhalb der for-Schleifen verwechselt.
 
Zurück