mysql_fetch_array erten eintrag andere style als alle anderen?

hups1803

Erfahrenes Mitglied
hallo,
ich habe folgendes problem:

ich hole mir daten aus der datenbank sortiert nach Kategorien nun muss aber der erste eintrag immer diesen style haben::
Code:
 style="display:block;top:25px;"

alle anderen sollen diesen style bekommen :
Code:
 style="width:240px;

nur leider hab ich kein plan wie man das hinbekommt.

hier mal die ganze Abfrage
PHP:
$sql3 = "SELECT * FROM `e107_portfolio`WHERE cat_id = '$cat' ORDER BY id ";
		$res3 = mysql_query($sql3) ;
		
		while($row1 = mysql_fetch_array($res3))
			{
		$id = $row1['id'];
	$folio .= '<h1 style="display:block;top:25px;">'.$row1['pg_title'].'</h1>';	
		
	$folio .= '<h1 style="width:240px;">'.$row1['pg_title'].'</h1>';
		 }

danke für eure Hilfe
 
hab es so gemacht ist das php soweit ok oder zu umständlich ****

Code:
$classes = array("style='display:block;top:25px;width:240px;'", "style='width:240px;'"); 
$classes2 = array("style='display:block;z-index:9999;'", ""); 
$classes3 = array("style='display:block;left:205px;width:62%;'", "style='width:62%;'"); 
$classes4 = array("style='display:block;left:205px;width:62%'", "style='width:62%;'");


PHP:
	$sql3 = "SELECT * FROM `e107_portfolio`WHERE cat_id = '$cat' ORDER BY id ";
		$res3 = mysql_query($sql3) ;
		$i = 0;	
		while($row1 = mysql_fetch_array($res3))
			{
		$id = $row1['id'];
			
	$folio .= '<h1 '.$classes[$i].'>'.$row1['pg_title'].'</h1>';
		 $i++; }
 
Nachteil: Du musst dein $classes genauso lange machen wie du Einträge aus der DB erhälst. Ist nicht sehr flexibel.

So auf die Schnelle würde ich es etwa so lösen
PHP:
$i=0;
while($row1 = mysql_fetch_array($res3)){
	$style = (!(bool) $i++) ? "style='display:block;top:25px;width:240px;'" : "style='width:240px;'";
	$id = $row1['id'];
    $folio .= "<h1 {$style}>{$row1['pg_title']}</h1>";
}

Zur erklärung von: $style = (!(bool) $i++) ? "style='display:block;top:25px;width:240px;'" : "style='width:240px;'";
(bool) $i ==> konvertiert $i in ein Boolean. Dabei ist 0 false, 1, 2, 3 etc true
Nun dreh ich das gnaze mt dem ! davor um
!(bool) $i ==> 0 ist jetzt also true, währen dalle weiteren false sind
Da bei $i++ $i erst nach dem auslesen des Wertes hochgezählt wird (im Gegensatz zu ++$i), kann ich das hochzählen also grad schon hier machen.
Und der Rest ist die normal gekürzte if-Struktur mit ? und :
 
Zurück