Tabellenproblem

h4dhunTer

Erfahrenes Mitglied
Hallo,

ich baue gerade einen Shop und es baut sich das problem auf, wenn ich mit dem Code:

PHP:
<?
// hier oben ist halt der anfang

while($daten = mysql_fetch_assoc($abfrage)){
if($i==0){
$i=1;
echo "<table width=\"95%\" bgcolor=\"#C4DBFF\" cellspacing=\"1\">
<tr>
<td width=\"50%\" bgcolor=\"#FFFFFF\">HIER TABELLE "LINKS"</td>";
}else{
echo " <td>HIER TABELLE "RECHTS"</td> </tr> </table>";
$i=0;
}

//hier ist der rest
?>
nun mein Problem, wenn nun nicht z.B. 10 Artikel (halt ne grade Zahl) sondern nur 9 sind, sieht die letzte Reihe der Tabelle so komisch aus und das möchte ich nicht.

Wie kann ich (einfach) die letzte Tabelle die rechts ist, leer lassen (als Platzhalter)?

Ich hoffe, dass ich es verständlich erklärt habe.
Die Lösung brauche ich sehr schnell, da ich eine frist habe :mad: .
Vielen Dank schonmal ! ^^
 
In deinem Code blickt man nicht durch, wofür soll das $i gut sein?
Poste doch bitte mal den gesammten Code.

Gruß
Funghi
 
Hallo,

also das $i ist dafür da, dass sich das immer wiederhohlt, bis es nichts mehr gibt. Den Code dadrüber ist nicht wichtig, weil da nur die Datenbank abfrage ist.
 
Wieso wiederholt bis es nichts mehr gibt?

PHP:
while($daten = mysql_fetch_assoc($abfrage)){

Durch diese Schleife ist die Abfrage schon begrentzt, er hört auf wenn alle Zeilen der Tabelle ausgegeben wurden.
Und immernoch ist mit dein Problem so direkt nicht ganz bekannt.
Wenn du eine normalerweise vollständige Tabelle (vom Code her gesehen) zerstückelst und in eine if abfrage reinbaust , wovon immer nur ein entweder der Teil von "if" oder der Teil von "else" ausgeführt wird, ist es klar das die Tabelle komisch aussieht.
Das kannst du so nicht machen, die Tabelle muss auch ohne diese Abfrage für den Browser vollständig sein, daher musst du solche Tags wie "<table>/</table> ausserhalb dieser Abfrage schon ausgeben, und in deiner Datenbankabfrage (Schleife) dann nurnoch <td>xxx</td> was sich immer wiederholt. Dann gibts auch keine Fehler.
Sorry wenn ich mich etwas geqäult ausdrücke, bin hier etwas im Stress.

Gruß
Funghi
 
Hallo,

also ich weiß net, wie ich das mit $i erklären soll. Es ist schon so was "j cop" gesagt hat, ich glaube er hat es verstanden.

@ElFunghi , wie meinst du, wie das besser geht. Ich möchte halt immer zwei Artikel in eine reihe.
 
Achso du möchtest 2 Artikel gleichzeitig ausgeben, na dann sag das doch.
Hab leider grade keine Zeit um gross rumzuprobieren, aber sowas hier müsste dir eigentlich zusagen:

PHP:
<? 

$y=0;
$i=0;
echo "<table width=\"95%\" bgcolor=\"#C4DBFF\" cellspacing=\"1\">";
while($y<=15){ 
	if($i==0){ 
		$i=1; 
		echo "<tr><td width=\"50%\" bgcolor=\"#FFFFFF\">HIER TABELLE \"LINKS\"</td>"; 
	}
	else{ 
		echo "<td>HIER TABELLE \"RECHTS\"</td></tr>"; 
		$i=0; 
	}
	$y++;
}
echo"</table>";

?>

Bei ungerader Anzahl bleibt die Lila Box einfach nur Lila ohne Inhalt.
Ich habe da eine primitive Schleife eingebaut damit ich es ohne Datenbankverbindung testen konnte, musst du natürlich noch umbauen.

Gruß
Funghi
 
Naja wie gesagt nicht so die Zeit jetzt gross rumzuprobiern bin selber grade am programmiern.
Aber du wolltest du noch das die Tabelle nicht gesprengt wird, und das wird sich nun nicht ;).
Es gibt viele Lösungen für ein Problem, man sollte immer die nehmen die einem am besten liegt wenn sie nicht auf kosten der Performance geht.
Und wenn du den Code so verstehst da du ihn ja selber geschrieben hast, ist das immernoch besser als wenn ich nun einen Code dahinzaubere wo du keinen Meter durchsteigst, oder? ;)

Gruß
Funghi
 
Zurück