webForumDet fria alternativet

Skriva ut fem li och sedan ett nytt ul

PHP

7 svar · 513 visningar · startad av Nova

Medlem sedan feb. 2005216 inlägg
Frågan#1

Jag vill skriva ut så här:

<ul>
<li>länken|/li>
<li>länken|/li>
<li>länken|/li>
<li>länken|/li>
<li>länken|/li>
</ul>
<ul>
<li>länken|/li>
<li>länken|/li>
<li>länken|/li>
<li>länken|/li>
<li>länken|/li>
</ul> os.v

Antalet li kommer inte att vara delbart med fem alla gånger utan det kan bli ett eller 5 li i sista ul.

Den här koden använder jag nu och den radar upp alla <li> inom ett <ul>

<ul><?php $sql = mysql_query("select c.categories_id, cd.categories_name, cd.aktiv, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.aktiv = '1' and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name ") or die(mysql_error());
while($rows = mysql_fetch_array($sql)) {
            echo '<li><a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $rows['categories_id']) . '">' . $rows['categories_name'] . '</a></li>';
		
		
   
} ?></ul>

Hur gör jag för att ordna det?

Medlem sedan juni 20006 031 inlägg
#2

Något sånt här borde fungera

<?php 
$sql = mysql_query("select c.categories_id, cd.categories_name, cd.aktiv, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.aktiv = '1' and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name ") or die(mysql_error());
$i = 0;
while($rows = mysql_fetch_array($sql)) {
	if($i == 0) {
		echo "<ul>";
	}
    echo '<li><a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $rows['categories_id']) . '">' . $rows['categories_name'] . '</a></li>';	
	$i = ($i < 4 ) ? $i++ : 0;
    if($i == 0) {
		echo "</ul>";
	}
} 
if($i != 0) {
	echo "</ul>";
}
?>

(otestad kod)

Medlem sedan feb. 2005216 inlägg
#3

Tackar!
mvh
Peder

Medlem sedan feb. 2005216 inlägg
#4

Liten följdfråga, om jag vill skriva ut 9 stycken li innan ul hur gör jag då?

Medlem sedan juni 20019 519 inlägg
#5

ändra $i < 4 till $i < 8 ?

Medlem sedan feb. 2005216 inlägg
#6

voigtann1 skrev:

ändra $i < 4 till $i < 8 ?

Trodde det också, men det skriver fortfarande ut 5.

Medlem sedan juni 20019 519 inlägg
#7

när jag kör:

$i = ($i < 8 ) ? $i++ : 0;

i en for-loop så få jag alltid $i == 0

ändrade till:

$i = ($i < 8 ) ? ++$i : 0;

och verkar fungera bättre, vet inte om det behövs men: http://php.voigt.se/sandbox/wf/nova/list.php

Medlem sedan feb. 2005216 inlägg
#8

voigtann1:
Fungerar bra, tackar!

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)