3 Bilder in einer Reihe, wie

maeg

Erfahrenes Mitglied
Hi,

ich wette für mein Problem gibt es eine so einfache Lösung, aber ich komm einfach nicht drauf! Ich hab 20 Bilder in meiner Datenbank gespeichert.. also die bildnamen. Diese will ich jetzt ausgeben, hätte aber gerne, dass nach jedem 3. Bild eine neue Zeile beginnt wo die nächten 3 Bilder angezeigt werden. Hier der Code:

Code:
<?php
$sql="SELECT * from galerie";
$do=mysql_query($sql);
while(b=mysql_fetch_object($do))
{
echo"<img src=\"bilder/$b->url\">";
}
 
?>
 
PHP:
   <?php
  $sql="SELECT * from galerie";
  $do=mysql_query($sql);
  $i = 1;
  while(b=mysql_fetch_object($do))
  {
  echo"<img src=\"bilder/$b->url\">";
  if($i%3 == 0)
      echo "<br>";
  $i++;
  }
   
  ?>
 
maeg hat gesagt.:
ich wette für mein Problem gibt es eine so einfache Lösung,
Und ich wette, dass das Thema schon mindestens 20 mal behandelt wurde.
Die Restdivision (Modulooperator: %) hilft, siehe Codebeispiel von aruba-x-x.

Gruß hpvw
 
Hallo
ich glaube einen fehler gefunden zu haben i prog php noch nicht so lannge also ferzeit mir falls es keiner ist.

original while(b=mysql_fetch_object($do))

aber müsste es net while($b=mysql_fetch_object($do))

die bentonung liegt auf dem $b.
 
mike4004 hat gesagt.:
Hallo
ich glaube einen fehler gefunden zu haben i prog php noch nicht so lannge also ferzeit mir falls es keiner ist.

original while(b=mysql_fetch_object($do))

aber müsste es net while($b=mysql_fetch_object($do))

die bentonung liegt auf dem $b.
Ich musste den Text wegen den neuen Wörtern in der deutschen Sprache, den interessant vertauschten Buchstaben und der Schonung der Shift-Taste zwar ein paar mal lesen, aber dann habe ich doch erkannt, dass Du Recht hast.

Gruß hpvw
 
ich hab dazu folgendes problem und zwar wollte ich 3 bilder in einer reihe haben und dazu aber unter jedem bild noch eine kurz info aber ich scheiter schon den dem mit den tabellen
kann mir da jemand helfen

PHP:
  $sql = "SELECT * FROM frau WHERE anzeigen='1'";
  $result = mysql_query($sql) OR die(mysql_error());
  $i = "1";

$inhalt.="<table width='75%' border='1' bordercolor='#666666'><tr>";
  while($row=mysql_fetch_object($result))
  {
 $inhalt.="<td valign='middle'><div align='justify'><center>
<a href='frau.php?detail&id=$row->id'><img src='images/products/frau/$row->bild' width='200' height='200' border='0' align='middle'></a><br>
      $row->kurzinfo
    </div></td>";
	
  if($i%3 == 0)
      $inhalt.="  </td>";
  $i++;
  }	

$inhalt.="</tr></table>";
 
Probiers mal so:
PHP:
$sql = "SELECT * FROM frau WHERE anzeigen='1'"; 
  $result = mysql_query($sql) OR die(mysql_error()); 
  $i = "1"; 

$inhalt.="<table width='75%' border='1' bordercolor='#666666'>"; 
  while($row=mysql_fetch_object($result)) 
  { 
if($i == 1 OR $i%4 ==0)
      $inhalt.="  <tr>"; 
 $inhalt.="<td valign='middle'><div align='justify'><center> 
<a href='frau.php?detail&id=$row->id'><img src='images/products/frau/$row->bild' width='200' height='200' border='0' align='middle'></a><br> 
      $row->kurzinfo 
    </center></div></td>"; 
     
  if($i%3 == 0) 
      $inhalt.="  </tr>"; 
  $i++; 
  }     

$inhalt.="</table>";
 
Dann darf ich über mich selbst staunen, denn das war nur nebenbei ma fix getippat ^^

Ich glaube die Unterschiede zu deinen Code sind klar...
Zum einen wird $i zweimal ausgewertet...
Im ersten Fall wenn es 1 oder durch 4 teilbar ist, dann leitet es ne Tabellen Zeile ein...
Dann kommen die Daten ganz normal, da hatteste übrigenss cheinbar vergessen, dass <center>-Tag wieder zu schließen...
Zum Abschluß wird $i auf teilbarkeit durch 3 geprüft, um das ende der Zeile anzugeben...

1, 4, 3!? HÄ?
Die letzte Überprüfung is klar, sobald 3 Bilder ausgegeben wurden, also auch $i dann ==3 ist, bzw ein vielfaches von 3! , dann is die Zeile zuende...

Aber warum der erste Vergleich!?
Ganz einfach:
$i wird zu beginn auf 1 gesetzt, wenn also $i==1, dann muss ne neue Zeile angefangen werden...
Wenn nun alle 3 Bilder da stehen geht die Daztenausgabe ja noch weiter und so oder so wird nochmal $i++ gerechnet, wenn also dann $i teilbar durch 4 ist, dann wurde zuvor die Zeile geschlossen und es muss eine neue geöffnet werden...

Dürfte soweit klar sein, ansosnten steh ich per PM und öfters im IRC zur Verfügung ^^
 
Zurück