brauche hilfe [bilderarchiv]

redback79

Erfahrenes Mitglied
ich möchte ein kleines bilderarchiv programmieren, doch bin ich (leider schon relativ früh! *gg*) auf folgendes problem gestossen:

als vorbild fürs design dient mir corbis.com... es ist ja keine grosse sache die daten eines gb's in einer tabelle auszugeben, da die einträge untereinander aufgelistet werden.
bei meinem bilderarchiv sollen aber immer drei bilder nebeneinander angezeigt werden (als vorschau).. wie kann ich jeweils drei datensätze aus der db lesen bevor er mir die nächste tabelle generiert?
(ich würde es mit absoluter HTML-positionierung der tabellen versuchen... was meint ihr?)

vielleicht noch ein tipp zur vorschau....kennt jemand ein gutes tutorial zum thema, oder hat gar ein "beispielscript"?? :-)


THX (im voraus!)
 
Na nix da mit absoluter positionierung und css usw.... wir wollen ja keine user mit netscape ausstossen oder so.

ich würde es so machen:

bis jetzt liest du immer deine tabelleninhalte aus- mit einer while schleife, also while($ar = mysql_fetch_array($result)){

nun setzt du eine variable- $i = 0;

bei jedem durchgehen deiner schleife erhöhst du $i um 1: $i++;

nun schreibst du immer ans ende,

$o = $i/3;
if(is_int($o)) print "</td></tr></table><br>"; - oder wie auch immer.

also wenn $o ein integer ist, und das ist er immer wenn zB $i gleich 3 oder 9 ist, dann schreibt er dir das </td></tr> usw hin.
ka obs so funzt, ich kann hier nix testen, mein rechner ist hin.
 
danke für den tipp!

vom prinzip her hab ich verstanden was du damit meinst... nur leider happerts mit der umsetzung... :-(


geht das auch irgend wie anders? ..scheint mir ein wenig kompliziert zu sein! *sorry*

hier mal der code-"rohbau" soweit: (archiv.php)

PHP:
<html>

<head>
<title>Bilderarchiv!</title>
</head>

<body>

<?php
$db = mysql_connect ("localhost", "xxx", "yyy");
mysql_select_db ("archiv");

$sqlkommando = "SELECT * FROM bilder ORDER BY id DESC"; 
    
    $sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error()); 

    while($daten = mysql_fetch_object($sqlanfrage)) 
    {                                                

echo ("<table border=\"0\" cellpadding=\"2\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"500\">");
echo ("  <tr>");
echo ("    <td width=\"33%\" align=\"center\">");
echo ("    <img border=\"0\" src=\"$daten->link\" width=\"136\" height=\"105\"></td>");
echo ("    <td width=\"33%\" align=\"center\">");
echo ("    <img border=\"0\" src=\" $daten->link\" width=\"136\" height=\"105\"></td>");
echo ("    <td width=\"33%\" align=\"center\">");
echo ("    <img border=\"0\" src=\" $daten->link\" width=\"136\" height=\"105\"></td>");
echo ("  </tr>");
echo ("  <tr>");
echo ("    <td width=\"33%\" align=\"center\">$daten->filename");
echo ("    <img border=\"0\" src=\"bilder/enlarge_small.gif\">");
echo ("    <img border=\"0\" src=\"bilder/viewdetails_small.gif\"></td>");
echo ("    <td width=\"33%\" align=\"center\">$daten->filename");
echo ("    <img border=\"0\" src=\"bilder/enlarge_small.gif\">");
echo ("    <img border=\"0\" src=\"bilder/viewdetails_small.gif\"></td>");
echo ("    <td width=\"33%\" align=\"center\">$daten->filename");
echo ("    <img border=\"0\" src=\"bilder/enlarge_small.gif\">");
echo ("    <img border=\"0\" src=\"bilder/viewdetails_small.gif\"></td>");
echo ("  </tr>");
echo ("</table>");
echo ("<br>");

} //end while
?>

</body>

</html>

... wie schon gesagt: "rohbau"!!! ...ich möchte mal zuerst, dass die bilder im "dreierpack" ausgegeben werden. (thumb-nails, links usw. folgen dann...)

THX
 
godwich hat das vom Prinzip her schon richtig beschrieben:

PHP:
echo "<table><tr>";
$i=0;
while($daten = mysql_fetch_object($sqlanfrage)) {
  echo "<td><img ...></td>";
  $i++; //$i um eins erhöhen
  if ($i%3 ==0) { //wenn $i durch drei teilbar ist,
    echo "</tr><tr>"; //dann neue Zeile
  }
}
echo "</tr></table>";

hope that helpz


Dunsti
 
@dunsti
sorry, aber ich hatte noch keine zeit mich bei dir zu bedanken, so überwältigt war ich vom ergebnis, dass ich gleich weitercoden "musste"! :-)

funzt also alles einwandfrei!

THX
 
Zurück