[Gallerie] Breite der Bilder aus der Sql Tabelle lesen und in Link schreiben, wie geh

noxit

Grünschnabel
Dies ist der Code der Gallerie. Die Variable $x_wertthumb ist bis anhien die Breite der Bilder = 100 Pixel. Nun möchte ich aber für jedes Bild in der Tabelle die Breite individuell auslesen. Das Feld in dem die Breiten in der Tabelle sind heisst wertthumb. Die grösse soll dan im Link bewirken:
echo "<img src=\"thumb.php?image=".$abs_path."/".$output_pic."&amp;x=".$x_wertthumb."
\">;
sas ".$x_wertthumb." automatisch die im Feld vermerkte Breite ausgeführt wird. Wie geht das?

PHP:
$query=mysql_query("SELECT * FROM $grenpic WHERE rubrik='$_GET[rubrik]' ORDER BY timestamp ASC LIMIT $Pageposition, $Zeilen_pro_Seite") or die(mysql_error());
} else {
$ueberschrift="<br />\n";
$query=mysql_query("SELECT * FROM $grenpic ORDER BY timestamp ASC LIMIT $Pageposition, $Zeilen_pro_Seite") or die(mysql_error());
}

echo $ueberschrift."$ueberschrift_text\n"; // jew. Überschrift ausgeben

while($row = mysql_fetch_array($query)) {
$j = mysql_num_fields($query);
for($i=0;$i<$j;$i++) {
$k = mysql_field_name($query,$i);
$$k = $row[$k];
}
$files[]=$bilduri;
$filesid[]=$id;
$ti[]=$shorttext;
$alt[]=$alttext;}

// enthält shorttext einen Content?
if(empty($shorttext)){
$shorti="";
// nein, dann eben ohne Text :-(
} else {
$shorti=stripslashes($shorttext);
}

function create_table($files, $filesid, $ti, $alt){
global $limit, $tb_photogallerie, $abs_path, $x_wertthumb, $table, $tr, $td, $columns, $shorti, $url;
$br ="\n";
$filecount = 0;
$rows = $limit / $columns;
$rest = $limit % $columns;
if ($rest != 0)
$rows +=1;
echo $table,$br;
for ($rowcount=1; $rowcount <= $rows; $rowcount++){
echo $tr.$br;
for ($colcount=1; $colcount <= $columns; $colcount++){
echo $td.$br;
if ($filecount <= ($limit - 1)){
$output_id=$filesid[$filecount];
$output_pic=$files[$filecount];
$output_ti=$ti[$filecount];
$output_alt=$alt[$filecount];
$filecount++;
if(!empty($output_id)){
echo "<a href=\"viewphoto.php?img=".$abs_path."/".$output_pic."&amp;x=".$filesid."\">\n";
echo "<img src=\"thumb.php?image=".$abs_path."/".$output_pic."&amp;x=".$x_wertthumb."
\" alt='$output_alt' style='border-top: 1px black; border-right: 1px black; border-bottom: 1px black; border-left: 1px black'>";
echo "</a><br>";
echo "$output_ti";
} else {
echo "&nbsp;";
}
}
else echo "&nbsp;";
echo $br;
echo "</td>".$br;
}
echo "</tr>".$br;
}
echo "</table>".$br;
}

create_table($files, $filesid, $ti, $alt);

?>
 
ich weiß zwar nicht, ob ich das ganze jetzt richtig verstanden hbe, aber was mir auffällt ist, dass Du der Variablen $x_wertthumb nirgends in dem Script einen Wert gibst.

Also fehlt sowas in der Art:
PHP:
$x_wertthumb=$wertthumb[$filecount];

Oder liege ich da jetzt daneben?

MfG
cyber
 
Zuletzt bearbeitet:
Stimmt schon ich müsste x_wertthumb in die Funktion Create Table einbezien, d. h. überall:

$wert[]=$wertthumb;}
function create_table($files, $filesid, $ti, $alt, $wert)
$x_wertthumb=$wertthumb[$filecount];
create_table($files, $filesid, $ti, $alt, wert);

Aber, wenn ich das tue, so werden die Bilder nicht angezeigt, es steht dann nur die Breite und das Icon für die Fehleranzeige.

Wenn der Link richtig wäre würde er so stehen:

http://www.page.de/.../.../thumb.php?image=gallerie/Bild.JPG&x=100

und in der Statusleite so:

http://www.page.de/.../.../thumb.php?image=gallerie/Bild.JPG&x=Array

Wie muss ich das machen, das die Breiten richtig aus der Datenbank gelesen werden und in den Link geschrieben werden?

Vielen Dank für die hilfe!
noxit
 
ähm...

Was mir auch noch auffält:
PHP:
echo "<img src=\"thumb.php?image=".$abs_path."/".$output_pic."&x=".$x_wertthumb."
\" alt='$output_alt' style='border-top: 1px black; border-right: 1px black; border-bottom: 1px black; border-left: 1px black'>";
kann man so (mit nem PHP-Template in nem <img> Tag) überhaupt ein Bild anzeigen? :eek:
Irgendwie kommt mir das alles spanisch vor...
Woher bekommen denn die Variable $abs_path einen Wert?

Also falls die Varaible einen Wert zugewiesen bekommt, müsste das doch eher so heißen:
PHP:
echo "<img src=\"'$abs_path.'/'.$output_pic\'" width=\"$x_wertthumb\" alt=\"$output_alt\" style=\"border-top: 1px black; border-right: 1px black; border-bottom: 1px black; border-left: 1px black\">";
(keine Grantie für richtig gesetzte Hochkommas - das war noch nie meine Stärke! :-) )

Falls das nicht funktioniert, lass Dir mal die Variable $x_wertthumb ausgeben und schau, was die für nen Wert hat.

MfG
cyber

[EDIT]
vor jedes " iin meinem Code gehört natürlich ein \ aber das wird vom Forum irgendwie nicht angezeigt!
[/EDIT]
 
ich habe nun den Code Richtig geschrieben. Nur werden die Daten in der Tabelle nicht in den Link geschrieben.
Mein Link:
PHP:
echo "<img src=\"thumb.php?image=".$abs_path."/".$output_pic."\" width=\"$output_we\" height=\"$output_weh\">";
Mit echo erhalte ich die Werte 100 und 67 was nun meine Breite und Lenge der Bilder wären. Warum werden die Daten nicht auf den Link übertragen?
 
Zuletzt bearbeitet:
aaarrgghhh... jetz check ich erst, um was es da geht :rolleyes:

Also:
PHP:
echo "<img src=\"thumb.php?image=$abs_path.'/'.$output_pic&x=$x_wertthumb\" alt=\"$output_alt\" style=\"border-top: 1px black; border-right: 1px black; border-bottom: 1px black; border-left: 1px black\">";

Wenn Du der Variable $x_wertthumb was zugewiesen hast, müsste es eigentlich so passen.

MfG
cyber
 
Zuletzt bearbeitet:
Wenn ich x_wertthumb einen Wert aus der SQL Datenbank zuweisen möchte, schreibe ich dann das so? Bei der Ausführung des Scriptes erhielt ich die Nachricht No Database selected.
Wie musste man das schreiben?
PHP:
$Bilder="grenpic";
$query=mysql_query("SELECT wertthumb FROM $grenpic") or die(mysql_error());
while($row = mysql_fetch_array($query)) 
$j = mysql_num_fields($query);
for($i=0;$i<$j;$i++) 
$x_wertthumb="$wertthumb";
 
Zurück