webForumDet fria alternativet
Logga in / Bli medlem

Dynamisk PHP meny

PHP

9 svar · 527 visningar · startad av johnkallioniemi

Medlem sedan aug. 200534 inlägg
Trådstart#1

Nån som vet hur jag kan lösa det så att om jag har kategorierna så här och klickar på en så ska underkategorin hamna rakt under men dom andra ska vara kvar typ här

Först

Kat1
Kat2
Kat3
Kat4

Sen

Kat1
   Sub1
   Sub2
   Sub3
Kat2
Kat3
Kat4

<table>
<?
include 'includes/db.php';
$result=mysql_query("Select
categories.category,
categories.id,
count(products.category) as prods
From
categories,
products
Inner Join subcategories ON
products.category = subcategories.id AND
subcategories.`mid` = categories.id
Group By categories.category
");
while($rad=mysql_fetch_assoc($result)){
?>
<tr>
    <td><a href="?id=<?=$rad['id']?>"><?=$rad['category']?></a> ( <?=$rad['prods']?> )</td>
</tr>

    <?
    if(isset($_GET['id'])){
    $result=mysql_query("Select
    subcategories.subcategory,
    subcategories.id
    From products
    Inner Join subcategories ON
    products.category = subcategories.id
    Where subcategories.`mid` = '".$_GET[id]."'
    Group By subcategories.subcategory
    ");
    while($rad=mysql_fetch_assoc($result)){
    ?>
    <tr>
        <td><a href="?id=<?=$rad['id']?>"><?=$rad['subcategory']?></a></td>
    </tr>
    <?
        }
    }
    ?>

<?}?>

</table>

Har bara lyckats att få det till att första topp kategorin visas :/

snälla hjälp mig ;D

Medlem sedan juli 20033 147 inlägg
#2

Vet inte om det spelar någon roll, men byt variabelnamnen på en av SQL-frågorna.
$result och $rad.

Medlem sedan aug. 200534 inlägg
#3

Fick upp det så här då när jag klickade på hårddiskar:/

Först
Bildskärmar ( 1 )
CD/DVD ( 3 )
Hårddiskar ( 9 )
Nätverk ( 11 )

Sen
Bildskärmar ( 1 )
IDE
S-ATA
CD/DVD ( 3 )
IDE
S-ATA
Hårddiskar ( 9 )
IDE
S-ATA
Nätverk ( 11 )
IDE
S-ATA

Medlem sedan juni 20006 031 inlägg
#4

Som det är nu så kollar du ju bara om du har $_GET['id'] så hämtas subkategorierna. Kolla så dom har samma värde som raden i loopen.

if(isset($_GET['id'] == $rad['id'])){
Medlem sedan aug. 200534 inlägg
#5

Då blev det så här hmm..........

Bildskärmar ( 1 )
IDE
S-ATA
CD/DVD ( 3 )
IDE
S-ATA
Hårddiskar ( 9 )
IDE
S-ATA
Nätverk ( 11 )
IDE
S-ATA

Medlem sedan juni 20006 031 inlägg
#6

Det verkar konstigt att den skriver ut likadant.
Kan du posta koden som den ser ut nu?

Medlem sedan aug. 200534 inlägg
#7
<table>
<?
include 'includes/db.php';
$result=mysql_query("Select 
categories.category, 
categories.id,
count(products.category) as prods
From 
categories, 
products 
Inner Join subcategories ON 
products.category = subcategories.id AND 
subcategories.`mid` = categories.id
Group By categories.category
");
while($rad=mysql_fetch_array($result)){
?>
<tr>
    <td><a href="?id=<?=$rad['id']?>"><?=$rad['category']?></a> ( <?=$rad['prods']?> )</td>
</tr>

    <?
    if(isset($_GET['id'])==$rad['id']){
    $result2=mysql_query("Select
    subcategories.subcategory,
    subcategories.id
    From products
    Inner Join subcategories ON
    products.category = subcategories.id
    Where subcategories.`mid` = '".$_GET[id]."'
    Group By subcategories.subcategory
    ");
    while($rad2=mysql_fetch_assoc($result2)){
    ?>
    <tr>
	<td><a href="?id=<?=$rad2['id']?>"><?=$rad2['subcategory']?></a></td>
    </tr>
    <?    
	}
    }
    ?>

<?}?>

</table>
Medlem sedan juni 20006 031 inlägg
#8

Och det fungerar inte om du använder koden jag skrev?

if(isset($_GET['id'] == $rad['id'])){

Observera att parenteserna är annorlunda än i din kod.

Medlem sedan aug. 200534 inlägg
#9

det funkar inte med din kod därför var jag tvungen att skriva den på mitt sätt istället :/

Medlem sedan aug. 200534 inlägg
#10

Detta är koden som funkar ;D

<table>
<?
include 'includes/db.php';
$result=mysql_query("Select
categories.category,
categories.id,
count(products.category) as prods
From
categories,
products
Inner Join subcategories ON
products.category = subcategories.id AND
subcategories.`mid` = categories.id
Group By categories.category
");
while($rad=mysql_fetch_array($result)){
?>
<tr>
    <td><a href="?id=<?=$rad['id']?>"><?=$rad['category']?></a> ( <?=$rad['prods']?> )</td>
</tr>

    <?
    if(isset($_GET['id']) && $_GET['id'] == $rad['id']){
    $result2=mysql_query("Select
    subcategories.subcategory,
    subcategories.id
    From products
    Inner Join subcategories ON
    products.category = subcategories.id
    Where subcategories.`mid` = '".$_GET[id]."'
    Group By subcategories.subcategory
    ");
    while($rad2=mysql_fetch_assoc($result2)){
    ?>
    <tr>
        <td><a href="?id=<?=$rad2['id']?>"><?=$rad2['subcategory']?></a></td>
    </tr>
    <?
        }
    }
    ?>

<?}?>

</table>
266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)