---
title: "Hjälp med meny på flera steg men enbart ?cat=xxx"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/190634-hjälp-med-meny-på-flera-steg-men-enbart-cat-xxx"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Asa"
published: "2012-11-07T18:40:53.000Z"
updated: "2012-11-17T17:21:22.000Z"
replies: 1
views: 915
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/190634-hjälp-med-meny-på-flera-steg-men-enbart-cat-xxx"
---

# Hjälp med meny på flera steg men enbart ?cat=xxx

## #1 — Asa, 2012-11-07T18:40Z

```
<ul class="simple-nav">
	<li class="current"><a href="item.php?cat=1">Beten</a> </li>
	<ul>
		<li><a href="item.php?cat=6" class="current">Jerkbait</a></li>
		<ul>
			<li><a href="item.php?cat=9" class="current">Buster jerk</a></li>
			<ul>
				<li><a href="item.php?cat=14" class="current">Buster Jerk - 7cm</a></li>
				<li><a href="item.php?cat=15">Buster Jerk - 11 cm</a></li>
            </ul>
			<li><a href="item.php?cat=10">Jeff Boggs</a></li>
			<li><a href="item.php?cat=11">ProLogic</a></li>
			<li><a href="item.php?cat=12" class="none">Rapala</a></li>
			<li><a href="item.php?cat=13">SavageGear</a></li>
		</ul>
		<li><a href="item.php?cat=7">Rullar</a></li>
		<li><a href="item.php?cat=8">Spö</a></li>
	</ul>
	<li><a href="item.php?cat=2">Flugfiske</a></li>
	<li><a href="item.php?cat=3">Trolling</a></li>
	<li><a href="item.php?cat=4">Havsfiske</a></li>
	<li><a href="item.php?cat=5">Kläder</a></li>	
</ul>
```

Har utseende för en meny jag har och vill göra så att för varje steg man klickar in på så hålls menyn öppen.
Har suttit och hållt på ett tag med detta men det jag gjort vill inte fungera. Alla huvudkategorier blir öppna och 
jag kan öppna nivå 2 genom att klicka på nivå 1 och sen när jag klickar på nivå 3 stängs det ihop. 
Vet ej hur jag ska lösa detta.

klassen current är att den är aktiv och klassen none visar att den ej har någon underkategori.

Kategoritabellen ser ut så här:

```
tbl_kategori
     kategoriID
     kategori
     tkategoriID
```

Huvudkategorin Nivå 1 har tkategoriID 0 och kategoriID 1 medans Nivå 2 har i menyn ovans fall tkategoriID 1 och kategoriID 6 och Nivå 3 har tkategoriID 6 och kategoriID 9 och exempel 1 i Nivå 4 har tkategoriID 9 och kategoriID 14

Här är min kod:

```
<?php
$katID = "";
$rad   = "";
$rad1  = "";
$rad2  = "";
$rad3  = "";
$rad4  = "";

$katID = fixSQL($_GET['cat']);
$sql1 = mysql_query("SELECT kategori,tkategoriID,kategoriID FROM tbl_kategorier Where kategoriID=$katID") or die(mysql_error());
$rad1 = mysql_fetch_array($sql1);

$sql2 = mysql_query("SELECT kategori,tkategoriID,kategoriID FROM tbl_kategorier Where kategoriID=".$rad1['tkategoriID']) or die(mysql_error());
$rad2 = mysql_fetch_array($sql2);

if (mysql_num_rows($sql2) != 0){
	$sql3 = mysql_query("SELECT tkategoriID,kategoriID FROM tbl_kategorier Where kategoriID=".$rad2['tkategoriID']) or die(mysql_error());
	$rad3 = mysql_fetch_array($sql3);
	if (mysql_num_rows($sql3) != 0){
		$sql4 = mysql_query("SELECT tkategoriID,kategoriID FROM tbl_kategorier Where kategoriID=".$rad3['tkategoriID']) or die(mysql_error());
		$rad4 = mysql_fetch_array($sql4);
	}
}
?>

<ul class="simple-nav">
	<?php
	// Nivå 1
	$query = "SELECT kategoriID,kategori FROM tbl_kategorier Where tkategoriID=0 ORDER BY sort";
	$result = mysql_query($query, $conn);
	while ($RS=mysql_fetch_array($result)) {?>
		<li><a href="itemsx.php?cat=<?php echo $RS['kategoriID'];?>"><?php echo $RS['kategori'];?></a> </li>
		
		<?php
		// Nivå 2
		$antalUnder2 = mysql_num_rows(mysql_query("SELECT kategoriID FROM tbl_kategorier Where tkategoriID=".$RS['kategoriID']." ORDER BY kategori"));
		if($antalUnder2 > 0){ //  HÄR SKA NÅGOT IN.....
			echo "<ul>";
			$query2 = "SELECT kategoriID,kategori FROM tbl_kategorier Where tkategoriID=".$RS['kategoriID']." ORDER BY kategori";
			$result2 = mysql_query($query2, $conn);
			while ($RS2=mysql_fetch_array($result2)) {
				$antalUnder3 = mysql_num_rows(mysql_query("SELECT kategoriID FROM tbl_kategorier Where tkategoriID=".$RS2['kategoriID']." ORDER BY kategori"));?>
				<li><a href="itemsx.php?cat=<?php echo $RS2['kategoriID'];?>"<?php if($rad2['kategoriID'] == $RS2['kategoriID']){?> class="current"<?php }?><?php if($antalUnder3 == 0){?> class="none"<?php }?>><?php echo $RS2['kategori'];?></a></li>
					
				<?php
				// Nivå 3
				if($antalUnder3 > 0 && $rad1['kategoriID'] == $RS2['kategoriID']){ //  HÄR SKA NÅGOT IN.....
					echo "<ul>";
					$query3 = "SELECT kategoriID,kategori FROM tbl_kategorier Where tkategoriID=".$RS2['kategoriID']." ORDER BY kategori";
					$result3 = mysql_query($query3, $conn);
					while ($RS3=mysql_fetch_array($result3)) {
						$antalUnder4 = mysql_num_rows(mysql_query("SELECT kategoriID FROM tbl_kategorier Where tkategoriID=".$RS3['kategoriID']." ORDER BY kategori"));?>
			           	<li><a href="itemsx.php?cat=<?php echo $RS3['kategoriID'];?>"<?php if($rad1['kategoriID'] == $RS3['kategoriID']){?> class="current"<?php }?> class="none"><?php echo $RS3['kategori'];?></a></li>

						<?php
						// Nivå 4
						if($antalUnder4 > 0 && $rad2['kategoriID'] == $RS3['kategoriID']){ //  HÄR SKA NÅGOT IN.....
							echo "<ul>";
							$query4 = "SELECT kategoriID,kategori FROM tbl_kategorier Where tkategoriID=".$RS3['kategoriID']." ORDER BY kategori";
							$result4 = mysql_query($query4, $conn);
							while ($RS4=mysql_fetch_array($result4)) {?>
					           	<li><a href="itemsx.php?cat=<?php echo $RS4['kategoriID'];?>"<?php if($rad1['kategoriID'] == $RS4['kategoriID']){?> class="current"<?php }?> class="none"><?php echo $RS4['kategori'];?></a></li>
								<?php					
							}
							echo "</ul>"; 
						}
						// Nivå 4 - slut
				
					}
					echo "</ul>"; 
				}
				// Nivå 3 - slut
					
			}
			echo "</ul>";
			
		}
		// Nivå 2 - slut
	}
	// Nivå 1 - slut
	?>
</ul>
```

Permalänk: https://www.webforum.nu/p/190634

## #2 — jimmitjoo, 2012-11-17T17:21Z

Tror det skulle vara enklare att sätta ett "Parent ID" istället för bara vilken nivå menyn ligger i. Du kan då fråga om denna menyn är parent till någon annan, och om den i sin tur är parent åt någon ytterligare nivå. Om det är sant visar du menyerna.

Om jag förstått det hela rätt också så skriver du endast ut menyer som ska visas? Ett förslag är då också att dölja menyer med hjälp av CSS istället för att inte skriva ut dem. Då kan du enkelt tilldela klasser på de som ska synas, och kraftigt reducera ditt antal mysql-anrop.

Permalänk: https://www.webforum.nu/p/2306118

---

Tråden på webben: https://www.webforum.nu/amne/php/190634-hjälp-med-meny-på-flera-steg-men-enbart-cat-xxx
