 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
24.09.2007, 18:17
|
#1
|
|
TP-Senior
Registriert seit: Oct 2003
|
Zeilenumbruch bei Tabellen im DIV
Hi zusammen,
habe folgendes DIV:
PHP-Code:
div#content {
float:right;
width:615px;
height:390px;
margin-top: -35;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
overflow: auto;
scrollbar-3dlight-color: #666666;
scrollbar-arrow-color: #666666;
scrollbar-darkshadow-color: #FF661C;
scrollbar-face-color: #FF661C;
scrollbar-highlight-color: #FF661C;
padding-right: 5;
padding-left: 5;
}
und fülle es mit folgenden Tabellen:
PHP-Code:
<?
while($row = mysql_fetch_array($result)) {
$id = $row["id"];
$beschreibung = $row["beschreibung"];
$bild = $row["bild1"]."_tn.jpg";
?>
<table width="140" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td width="100" height="63" align="center"><a href="galerie.php&id=<? echo $id; ?>"><img src="<? echo $bild; ?>" class="navi"></a></td>
<td width="20"> </td>
</tr>
<tr>
<td height="20"> </td>
<td> </td>
</tr>
</table>
<?
}
?>
Das Problem ist, wenn die Anzahl der Tabellen nebeneinader die DIV Breite überschreitet, soll die nächste Tabelle in die nächste Zeile rutschen.
Und was macht das doofe Ding?  Das DIV einfach breiter. Mit Scrollbalken.
Weiß jemand Rat?
|
|
|
24.09.2007, 19:08
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Das wirst Du schon selber machen müssen, da die Breite in CSS PHP nicht interessiert. Das wird erst vom Browser auf dem Client getestet.
Wenn das DIV nun 615px breit ist und eine Tabelle ist 140px, passen da 4 nebeneinander.
Einen Umbruch fügst Du dann nach der Methode von hier (Zeilen einer Tabelle alternierend einfärben) ein, jedoch dann mit if($i++ % 4 ==0)
|
|
|
24.09.2007, 19:47
|
#3
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
seit wann speichert man Tabellen in der Datenbank ?
|
|
|
24.09.2007, 19:50
|
#4
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Mhhh, wie kommst Du nun darauf?
Aber mal so am Rande ... aus was bestehen denn Deine Datenbanken? Also meine aus Tabellen. 
|
|
|
24.09.2007, 22:45
|
#5
|
|
TP-Senior
Registriert seit: Oct 2003
|
Zitat:
Zitat von steffenk
seit wann speichert man Tabellen in der Datenbank ?
|
ich speicher keine Tabellen in der DB. Ich les nur die Bilder aus, und zeige die in 'ner Tabelle an....
|
|
|
24.09.2007, 22:46
|
#6
|
|
TP-Senior
Registriert seit: Oct 2003
|
Zitat:
Zitat von webcreate
Das wirst Du schon selber machen müssen, da die Breite in CSS PHP nicht interessiert. Das wird erst vom Browser auf dem Client getestet.
Wenn das DIV nun 615px breit ist und eine Tabelle ist 140px, passen da 4 nebeneinander.
Einen Umbruch fügst Du dann nach der Methode von hier (Zeilen einer Tabelle alternierend einfärben) ein, jedoch dann mit if($i++ % 4 ==0)
|
und wie kommst du auf einfärben??? 
|
|
|
24.09.2007, 23:00
|
#7
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Es ging weniger um das einfärben, als mit der angedeuteten if Anfrage nach allen 4 Durchläufen ein Umbruch einzufügen.
|
|
|
24.09.2007, 23:25
|
#8
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Im übrigen gibt es offiziell kein scrollbar-... blabla Müll nach dem CSS Standard und padding, width, margin & Co. brauchen eine Einheit (em, px, pt, %). 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
25.09.2007, 11:14
|
#9
|
|
TP-Senior
Registriert seit: Oct 2003
|
Zitat:
Zitat von webcreate
Das wirst Du schon selber machen müssen, da die Breite in CSS PHP nicht interessiert. Das wird erst vom Browser auf dem Client getestet.
Wenn das DIV nun 615px breit ist und eine Tabelle ist 140px, passen da 4 nebeneinander.
Einen Umbruch fügst Du dann nach der Methode von hier (Zeilen einer Tabelle alternierend einfärben) ein, jedoch dann mit if($i++ % 4 ==0)
|
Könnte mir jemand diesen Code
PHP-Code:
$i=0;
while($bedingung) {
echo '<tr bgcolor="'.($i++ % 2 ==0 ? 'green' : 'red').'"><td>...</td></tr>';
}
kurz mal erklären? Vor allem das in der echo Klammer. 
|
|
|
25.09.2007, 11:59
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
$i++ % 2 ==0 ? 'green' : 'red'
ist eine andere Schreibweise für
PHP-Code:
if($i % 2 == 0) echo 'green'; else echo 'red'; $i++;
% ist modula, heisst soviel wie "ist der rest von $i/2 gleich 0"
|
|
|
25.09.2007, 16:53
|
#11
|
|
TP-Senior
Registriert seit: Oct 2003
|
So, also Mozilla blickt's jetzt, aber der IE macht keinen Zeilenumbruch, sonder setzt das 5. Bild wie gehabt rechts nebenan, allerding um ein paar Pixel nach unten versetzt. Grrrrrrrrr.
Mein Code:
PHP-Code:
<?
while($row = mysql_fetch_array($result)) {
$id = $row["id"];
$beschreibung = $row["beschreibung"];
$bild = $row["bild1"]."_tn.jpg";
?>
<table width="140" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td width="100" height="63" align="center"><a href="galerie.php&id=<? echo $id; ?>"><img src="<? echo $bild; ?>" class="navi"></a></td>
<td width="20"> </td>
</tr>
<tr>
<td height="20"> </td>
<td> </td>
</tr>
</table>
<?
if($i % 4 == 0)
echo '<br>';
else
echo '';
$i++;
?>
<?
}
?>
|
|
|
25.09.2007, 17:02
|
#12
|
|
TP-Senior
Registriert seit: Oct 2003
|
Zitat:
Zitat von josch76
So, also Mozilla blickt's jetzt, aber der IE macht keinen Zeilenumbruch, sonder setzt das 5. Bild wie gehabt rechts nebenan, allerding um ein paar Pixel nach unten versetzt. Grrrrrrrrr.
Mein Code:
PHP-Code:
<?
while($row = mysql_fetch_array($result)) {
$id = $row["id"];
$beschreibung = $row["beschreibung"];
$bild = $row["bild1"]."_tn.jpg";
?>
<table width="140" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td width="100" height="63" align="center"><a href="galerie.php&id=<? echo $id; ?>"><img src="<? echo $bild; ?>" class="navi"></a></td>
<td width="20"> </td>
</tr>
<tr>
<td height="20"> </td>
<td> </td>
</tr>
</table>
<?
if($i % 4 == 0)
echo '<br>';
else
echo '';
$i++;
?>
<?
}
?>
|
Hat sich erledigt. Hab 7 (sieben) Zeilenümbrüche einbauen müssen, damit die 5. Tabelle unter die 1. rutscht, da ich den Tabellen align=left zugewiesen habe.
Ende gut, alles gut. 1000 Dank euch allen!
|
|
|
25.09.2007, 17:22
|
#13
|
|
TP-Senior
Registriert seit: Oct 2003
|
F*CK, zu früh gefreut. Ich hab grad irgendwie ein Logik-Hänger...
Also, mit der Schleife:
PHP-Code:
if($i % 4 == 0) echo '<br><br><br><br><br><br><br>'; else echo ''; $i++;
geht's nicht, da $i++ ja zu $i (Amzahl der Datensätze) eins addiert.
Also muß ich logischerweise ja $i-- verwenden. Angenommen, ich habe 9 Datensätze:
ich frage die Anzahl mit
PHP-Code:
$res = mysql_query("SELECT id FROM galerie WHERE typ='test'"); $i = mysql_num_rows($res);
ab.
Jetzt kommt irgendwann meine while Schleife, die diesen Wert $i als Anzahl nimmt, und wenn die $i/4 null ergibt, gibt's die 7 Zeilenumbrüche.
Sprich, mit meinen angenommenen 9 Datensätzen passiert dies eigentlich nach 5 Datensätzen, denn dann sind nur noch 4 übrig.
Aber momentaner Stand ist: es kommen die Zeilenumbrüche nach 2 Tabellen, dann kommen 4 in einer Reihe, wieder Zeilenumbrüche, und dann kommen nochmals 3 Tabellen.
Kann mir jemand auf die Sprünge helfen?
Nachtrag: klar, kann ja nicht gehn. Durch die Modulo Rechnung kommt der Zeilenumbruch immer da, wo $i eine Zahl ist, die genau durch 4 teilbar ist. Also schon nach 8. Und jetzt?
Geändert von josch76 (25.09.2007 um 17:40 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:58 Uhr.
| |