PHP Layout problem mit FF

Status
Nicht offen für weitere Antworten.

crashx

Erfahrenes Mitglied
Hallo mal wieder.

Ich habe keine Ahnung in welchem Forum ich diese Problem posten soll.
Ich habe ein PHP Ausrichtungproblem mit dem FF.
Eine thumbnail vorschau, mit Seitenwechswel funktion.
Im IE und Opera sieht es so aus wie es soll, 4 bilder nebeneinander, 3 linien untereinenader, also 12 Bilder pro Seite.
Nun kommt der Link zur nächsten seite usw,
Im Firefox kommen 1 linie mit 5 bildern dan der Link zur nächsten seite, wieder eine linie mit 5 bildern danach eine mit 2.
Ich weiss nicht genau wo da der Wurm drin ist, es könnte auch ein einfaches CSS problem sein.

PHP:
PHP:
<?
$conn = mysql_connect("localhost", "blabla", "blabla");

	if (!$conn) 
	{
   	echo "Keine Verbindung zur DB: " . mysql_error();
   	exit;
	}
	
	if (!mysql_select_db("blabla")) {
   	echo "Kann  mydbname nicht auswählen: " . mysql_error();
   	exit;
	}

$sql = "SELECT * 
          FROM `tuning`"; 
$eintrage = mysql_num_rows(mysql_query($sql)); 
$maxproseite = 12;
$i = 0; 
$seiten = $eintrage / $maxproseite; 

if (!isset($_GET['seite'])) 
	{                  
    	$sql = 
    		"SELECT * 
    		FROM `tuning` 
    		ORDER BY id 
    		LIMIT 0,".$maxproseite.";";
    } 
    else 
    {                                         
    	$abeintrag = $_GET['seite'] * $maxproseite - $maxproseite; 
    	$sql = 
    		"SELECT * 
    		FROM `tuning` ORDER BY `id` 
    		LIMIT ".$abeintrag.",".$maxproseite.";"; 
	} 

echo '<table style="border: 0px; width: 555px">';

$result = mysql_query($sql); 
$e = 4;
	while($row = mysql_fetch_assoc($result))
    	{  
        	if(($e % 4) == 0) 
        		{ 
        		echo '<tr>'; 
        		} 

        	echo '<div style="width:100px; margin: 2px; border: 1px dashed #000000; float: left">'; 
        		echo '<A HREF="galerie_high.php?id='.$row['id'].'">';
				echo '<img border="0" src="'.$row['thumb'].'"></a>';
			echo '</div>';

        	if(($e % 16) == 0) 
        		{ 
        		echo '</tr>'; 
        		}     
        
        $e++; 
    	}	
    	  
echo '</table>';
echo 'Seite '; 
	for($i = 1; $i - 1< $seiten; $i++)
		{              
    	echo "<a href=\"galerie.php?seite=".$i."\">".$i."</a> "; 
		}
?>
 
Layout-Probleme koennen nur dann was mit PHP zu tun haben wenn PHP irgendwie unterschiedlich fuer verschiedene Browser handelt.
Da ich bei Dir keinen solchen Code entdecken kann schliesse ich ein PHP-Problem aus.
 
@Johannes Röttger

Bist du dir da sicher?
Meinem Script nach, sollte in der Schleife nach 4! einträgen
PHP:
if(($e % 4) == 0) 
        		{ 
        		echo '<tr>'; 
        		}
eine neue Zeile <tr> beginnen, wieso geht das im IE und im FF nicht?
Da schliesse ich ein PHP Problem nicht unbedingt aus, weil im FF es ja 5 neben einander sind,

@Dennis, ich habe ein solche PHP Datei, aber die hat bis jetzt noch nichts damit zu tun,
der Volständigkeit halber:
PHP:
<html>

<head>
<link rel="stylesheet" type="text/css" href="css/page-set.css">
<style type="text/css">
<?
include('browser.php');
?>
#pageset			{
					padding: 0px;
					margin: 0px;
					text-align: left;
					<? echo $css; ?>
					}
</style>

</head>
<!-- kopfteil -->
<body>
<? echo $centerop; ?>
<div id="pageset">
	<div id="navigation">
	<img id="logo" src="pic/<?PHP echo $bild; ?>">
	<div id="nav-left"><a href="index.php?section=galerie">galerie</a><br>
					   Restauration<br>
					   Reparatur<br></div>
	</div>
<!-- navigation -->
	<div id="inhalt">
	<div id="nav-up" style="<? echo $nav;?>">Startseite | Kontakt | Impressum | Sitemap</div>
<!-- obere navigation -->
	<div id="text">
<?
$conn = mysql_connect("localhost", "xxx", "xxx");

	if (!$conn) 
	{
   	echo "Keine Verbindung zur DB: " . mysql_error();
   	exit;
	}
	
	if (!mysql_select_db("rossi")) {
   	echo "Kann  mydbname nicht auswählen: " . mysql_error();
   	exit;
	}

$sql = "SELECT * FROM `tuning`"; 
$eintrage = mysql_num_rows(mysql_query($sql)); 
$maxproseite = 12;
$i = 0; 
$seiten = $eintrage / $maxproseite; 

if (!isset($_GET['seite'])) 
	{                  
    	$sql = 
    		"SELECT * 
    		FROM `tuning` 
    		ORDER BY id 
    		LIMIT 0,".$maxproseite.";";
    } 
    else 
    {                                         
    	$abeintrag = $_GET['seite'] * $maxproseite - $maxproseite; 
    	$sql = 
    		"SELECT * 
    		FROM `tuning` ORDER BY `id` 
    		LIMIT ".$abeintrag.",".$maxproseite.";"; 
	} 

echo '<table style="border: 0px; width: 555px">';

$result = mysql_query($sql); 
$e = 4;
	while($row = mysql_fetch_assoc($result))
    	{  
        	if(($e % 4) == 0) 
        		{ 
        		echo '<tr>'; 
        		} 
        		//Hier beginnt der STYLE der Seite
        	echo '<div style="width:100px; margin: 2px; border: 1px dashed #000000; float: left">'; 
        		echo '<A HREF="galerie_high.php?id='.$row['id'].'">';
				echo '<img border="0" src="'.$row['thumb'].'"></a>';
			echo '</div>';
        		//Hier endet der STYLE der Seite wieder
        	if(($e % 16) == 0) 
        		{ 
        		echo '</tr>'; 
        		}     
        
        $e++; 
    	}	
    	  
echo '</table>';
echo 'Seite '; 
	for($i = 1; $i - 1< $seiten; $i++)
		{              
    	echo "<a href=\"galerie.php?seite=".$i."\">".$i."</a> "; 
		}
?>

	</div>
<!-- inhalt -->
	</div>
</div>
<? echo $centerclose; ?>
</body>

</html>
<!-- down -->
CSS Datei
Code:
html, body			{
					margin: 0px;
					padding: 0px;
					text-align: center;
					background-color: #C0C0C0;
					}
					
#logo				{
					position: absolute;
					margin: 0px;
					width: 142px;
					height: 106px;
					border-bottom: 1px dashed #FFFFFF;
					border-right: 1px dashed #FFFFFF;
					}

#navigation			{
					margin: 0px;
					background-image: url(../images/navigation.gif); 
					background-repeat: no-repeat;
					background-color: #FF0000;
					float: left;
					width: 142px;
					height: 100%;
					border-bottom: 1px dashed #FFFFFF;
					}
					
#nav-up				{
					border: 0px;
					margin-top: 0px;
					padding-left: 8px;
					height: 107px;
					font-family: verdana;
					font-size: 8pt;
					}
#nav-left			{
					border: 0px;
					margin-top: 110px;
					padding-top: 8px;
					padding-left: 8px;
					width: 140px;
					font-family: verdana;
					font-size: 8pt;
					line-height: 18px;
					}
									
#inhalt      		{
					margin: 0px;
					background-image: url(../images/banner.gif); 
					background-repeat: no-repeat;
					background-color: #C0C0C0;
					float: right;
					width: 618px;
					height: 100%;
					border-right: 1px dashed #FFFFFF;
					border-top: 1px dashed #FFFFFF;
					border-bottom: 1px dashed #FFFFFF;
					}
					
#text				{
					vertical-align: top;
					border: 0px;
					margin-top: 0px;
					padding-top: 8px;
					padding-left: 8px;
					font-family: verdana;
					font-size: 8pt;
					}
browser datei
PHP:
<?
if (strpos($HTTP_USER_AGENT, "MSIE"))
{
 
	$css = 'width: 760px; height: 100%;';
	$nav = 'padding-top: 86px';
}
if (strpos($HTTP_USER_AGENT, "Firefox"))
{

	$css = 'width: 762px; height: 99%;';
	$centerop = '<center>';
	$centerclose = '</center>';
	$nav	= 'line-height: 188px';
}
if (strpos($HTTP_USER_AGENT, "Opera"))
{

	$css = 'width: 760px; height: 100%;';
	$bgcolor = 'style="background-color: #ff0000"';
	$nav	= 'padding-top: 86px';
}
?>
 
Zuletzt bearbeitet:
Diese Schleife wird aber nicht im Browser ausgefuehrt, sondern auf dem Server. Daher kann der Browser keinerlei Einfluss auf die korrekte Ausfuehrung haben.
 
Lösung gefunden, das Problem lag am <div>.
Ich habe sie einfach mit <td>'s ersetzt.

PHP:
	while($row = mysql_fetch_assoc($result))
    	{  
        	if(($e % 4) == 0) 
        		{ 
        		echo '<tr>'; 
        		} 
        		//Hier beginnt der STYLE der Seite
        	echo '<td>'; 
        		echo '<A HREF="galerie_high.php?id='.$row['id'].'">';
				echo '<img border="0" src="'.$row['thumb'].'"></a>';
			echo '</td>';
        		//Hier endet der STYLE der Seite wieder
        	if(($e % 16) == 0) 
        		{ 
        		echo '</tr>'; 
        		}     
        
        $e++; 
    	}
 
HTML Layout Problem mit FF

crashx hat gesagt.:
Lösung gefunden, das Problem lag am <div>.
Ich habe sie einfach mit <td>'s ersetzt.
Damit handelt(e) es sich um ein HTML Layout Problem mit FF und der Thread wird von mir in das entsprechende Forum verschoben ;)
 
crashx hat gesagt.:
@dennis

Und was heisst das Konkret?
Das heisst, dass PHP-Scripts auf dem Server laufen und nicht im Browser wie JavaScripts.
Darum muss man bei JavaScript auch zum Teil auch unterschiedlichen Code fuer verschiedene Browser nutzen. PHP ist der Browser egal, denn es wird erstmal der ganze Code auf dem Server abgearbeitet und dann die Ausgaben an den Browser geschickt. Da gibt es keine Moeglichkeit, dass da irgendwie Einfluss auf das PHP-Script ausgeuebt werden kann.
 
Das Problem liegt wahrscheinlich auch daran, dass zwar alle vier Einträge eine neue Tabellenzeile deklariert wird, diese jedoch erst alle 16 Einträge wieder geschlossen wird.
Du könntest das Ganze übrigens auch als fortlaufende Liste auszeichnen und diese anschließend mit CSS wunderbar formatieren. Such dazu einfach mal mit den Stichwörtern „css list gallery“ für ein paar Beispiele.
 
Status
Nicht offen für weitere Antworten.
Zurück