[PHP] MySQL menu items aanvragen lukt niet goed.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
De titel is misschien een beetje vaag. Maar ik zal het hier even uitleggen...
Ik gebruik een shop systeem (Cubecart) waarin ik een CSS popup menu voor de navigatie wil inbouwen. Ik heb een redelijk eenvoudige gevonden en de opzet is ook simpel, maar ik krijg het maar niet ingebouwd...

Het menu werkt als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="menu">
// 1 menu item zonder popup //
<ul>
<li><a href="#" class="x">Home</a>
</ul>

// Menu item met meerder opties in popup//
<ul>
<li><a href="#" class="x">Beamers</a> // Hoofdknop
<ul>
<li><a href="#" id="index">Accessoires</a></li> //Popup optie
<li><a href="#" id="index">Onderdeel 2</a></li> //Popup optie
<li><a href="#" id="index">Onderdeel 3</a></li> //Popup optie
</ul>
</ul>
</div>


Met css wordt dit dan een menu. De MySQL aanvraag code van het shop systeem is origneel als volgt. (Werkt met tabellen)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// list Top-Level navigation
echo "<table border=\"0\" cellspacing=\"0\" width=\"144\" cellpadding=\"1\" align=\"left\">
        <tr>
            <td>[img]'images/custom/bullet.gif'[/img]
            </td>
            <td align=\"left\"><a href='index.php'>$la_search_home</a></td>
        </tr>";

while ($row = mysql_fetch_array($sql_select))
    {
        $cat_id_list = $row["cat_id"];
        $category = $row["category"];
        echo"<tr>
                <td>[img]'images/custom/bullet.gif'[/img]</td><td align=\"left\"><a href='index.php?cat_id=$cat_id_list'>$category</a></td>
            </tr>";
////////////////////////////////////////
//begin sub categories
$sql_selectpwt = mysql_query( "SELECT * FROM ".$prefix."store_category where cat_father_id = $cat_id_list");
$more_cat = MYSQL_NUM_ROWS($sql_selectpwt);

while ($row = mysql_fetch_array($sql_selectpwt))
 {
  $cat_count = $cat_count+1;
  $cat_id_list2 = $row["cat_id"];
  $subcategory = $row["category"];

  $count_products = mysql_query( "select * from ".$prefix."store_inventory where cat_id='$cat_id_list2'");
  $totalprod = MYSQL_NUM_ROWS($count_products);

   echo"<tr><td width='6'></td><td align=\"left\">[img]'images/custom/bullet.gif'[/img]<a href=\"index.php?cat_id=$cat_id_list2&catname='$subcategory'\">$subcategory </a>";

//uncomment the following to include a product count next to subcategories
//    echo"($totalprod)";

   echo"</td></tr>";

 }
//end subcategories
/////////////////////////////////////
    
}

if($sale=="Y")
    {
        echo"<tr><td width='6'>[img]'images/custom/bullet.gif'[/img]</td><td align=\"left\"><a href='sale_cat.php'>$la_sale_items</a><td></tr>";
    }
echo"</table>";


En dit heb ik er van gemaakt, alleen lukt het niet op de manier waarop het script de opties aanvraagt uit te database. Want hij herhaalt de code steeds.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/ list Top-Level navigation
echo "<table border=\"0\" cellspacing=\"0\" width=\"144\" cellpadding=\"1\" align=\"left\">";
echo "<div id=\"menu\">
<ul>
<li><a href='index.php' class=\"x\">[img]'images/custom/bullet.gif'[/img]$la_search_home</a></li>
</ul>";
echo"<ul>";
while ($row = mysql_fetch_array($sql_select))
    {
        $cat_id_list = $row["cat_id"];
        $category = $row["category"];
        
        echo"<li><a href='index.php?cat_id=$cat_id_list' class='x'>[img]'images/custom/bullet.gif'[/img]$category</a></li>";
////////////////////////////////////////
//begin sub categories
$sql_selectpwt = mysql_query( "SELECT * FROM ".$prefix."store_category where cat_father_id = $cat_id_list");
$more_cat = MYSQL_NUM_ROWS($sql_selectpwt);

while ($row = mysql_fetch_array($sql_selectpwt))
 {
  $cat_count = $cat_count+1;
  $cat_id_list2 = $row["cat_id"];
  $subcategory = $row["category"];

  $count_products = mysql_query( "select * from ".$prefix."store_inventory where cat_id='$cat_id_list2'");
  $totalprod = MYSQL_NUM_ROWS($count_products);
//echo "<ul>";
   echo"<li><a href=\"index.php?cat_id=$cat_id_list2&catname='$subcategory'\" class=\"popup\" id=\"index\">[img]'images/custom/bullet.gif'[/img]$subcategory </a></li>";

//uncomment the following to include a product count next to subcategories
//    echo"($totalprod)";

 //  echo"</ul>";

 }
  // echo"</ul>";
//end subcategories
/////////////////////////////////////

}





if($sale=="Y")
    {
        echo"<ul><li><a href=\"#\" class=\"x\">$la_sale_items</a></li></ul></ul>";
    }
echo"</div></table>";


Ik ben er al achter dat het zo dus niet gaat lukken. Wat ik moet hebben is dat het script kijkt of er subcategorien zijn. Als die er zijn moet hij een bepaalde code toevoegen.
code:
1
2
<ul>
<li><a href="#" class="x">Beamers</a> //dit moet er altijd komen.
stel dit is alleen een knop zonder popup dan moet hij later </ul> toevoegen

Zodra hij subcategorien vind moet hij eenmalig <ul> toevoegen, en dan per categorie zoals hij nu doet <li><a href="#" id="index">Subcategorienaam</a></li>. En dan op het einde bij de laatste subcategorie </ul> toevoegen. En dan helemaal aan het einde van de knop moet hij altijd eenmalig </ul> toevoegen om de knop af te sluiten volgens de code die ik in het begin geplaats heb.

Ik hoop dat iemand snapt wat ik probeer uit te leggen, en mij kan helpen. Als het nog onduidelijk is, vraag maar...

[ Voor 106% gewijzigd door Saeverix op 19-02-2005 12:03 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
ik heb eerlijk gezegd geen zin om je code te leren. zou je alsjeblieft het probleem willen uitkleden tot het princiepe, dan kunnen we kijken wat we voor je kunnen doen.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
zo moeilijk is het niet te begrijpen lijkt me... ik snap het zelfs, en ik ben beginner in PHP.
Hiermee roept hij de subcategorien aan en voegt deze in de site.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while ($row = mysql_fetch_array($sql_selectpwt))
 {
  $cat_count = $cat_count+1;
  $cat_id_list2 = $row["cat_id"];
  $subcategory = $row["category"];

  $count_products = mysql_query( "select * from ".$prefix."store_inventory where cat_id='$cat_id_list2'");
  $totalprod = MYSQL_NUM_ROWS($count_products);
//echo "<ul>";
   echo"<li><a href=\"index.php?cat_id=$cat_id_list2&catname='$subcategory'\" class=\"popup\" id=\"index\">[img]'images/custom/bullet.gif'[/img]$subcategory </a></li>";

//uncomment the following to include a product count next to subcategories
//    echo"($totalprod)";

 //  echo"</ul>";

 }

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Saeverix schreef op zaterdag 19 februari 2005 @ 11:51:
zo moeilijk is het niet te begrijpen lijkt me... ik snap het zelfs, en ik ben beginner in PHP.
Daar gaat het niet om. Je legt je probleem gewoon niet goed uit. Je geeft gewoon een stukje code met magere omschrijving waarbij je dan hoopt dat we daaruit die info wel halen. Daar heb ik dus geen zin in. Ik wil je best helpen, maar dan moet je met een duidelijk omschreven probleem komen en niet op deze manier dus. Ik zal de code even bestuderen nu.

Edit: ik heb even gekeken, ik heb geen idee wat er nu fout gaat en hoe je het dan wel zou willen hebben . Mischien zou je dan even kunnen toelichten dan.

[ Voor 13% gewijzigd door Michali op 19-02-2005 11:57 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
ik weet niet waar je gekeken hebt dan, maar ik heb toch echt alles uitgelegd met voorbeelden erbij... weet niet wat je nog meer wilt weten.

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 16-09 16:02

JHS

Splitting the thaum.

Saeverix schreef op zaterdag 19 februari 2005 @ 11:57:
ik weet niet waar je gekeken hebt dan, maar ik heb toch echt alles uitgelegd met voorbeelden erbij... weet niet wat je nog meer wilt weten.
Misschien zou je in plaats van "eerst had ik dit [grote lap code] en toen dit [grote lap code] , maar hij bleef herhalen" specifieke stukken kunnen uitligten, commenten, zoveel mogelijk niet-noodzakelijk code strippen, vertellen wat je waar hebt verandert, waaom je denk dat het zo wel moet werken, en wat er dan precies gebeurt :) .

Overigens, wat bedoel je met "alleen lukt het niet op de manier waarop het script de opties aanvraagt uit te database" , want die zin volg ik niet :) .

DM!


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Saeverix schreef op zaterdag 19 februari 2005 @ 11:57:
ik weet niet waar je gekeken hebt dan, maar ik heb toch echt alles uitgelegd met voorbeelden erbij... weet niet wat je nog meer wilt weten.
Dan ga ik even al je tekst zonder code uit de start post quoten met comment erbij, even kijken of ik het dan begrijp:
Saeverix schreef op zaterdag 19 februari 2005 @ 11:17:
De titel is misschien een beetje vaag. Maar ik zal het hier even uitleggen...
Ik gebruik een shop systeem (Cubecart) waarin ik een CSS popup menu voor de navigatie wil inbouwen. Ik heb een redelijk eenvoudige gevonden en de opzet is ook simpel, maar ik krijg het maar niet ingebouwd...

Het menu werkt als volgt:

Met css wordt dit dan een menu. De MySQL aanvraag code van het shop systeem is origneel als volgt. (Werkt met tabellen)

En dit heb ik er van gemaakt, alleen lukt het niet op de manier waarop het script de opties aanvraagt uit te database. Want hij herhaalt de code steeds.

Ik ben er al achter dat het zo dus niet gaat lukken. Wat ik moet hebben is dat het script kijkt of er subcategorien zijn. Als die er zijn moet hij een bepaalde code toevoegen.
het? hij? wat bedoel je?
Zodra hij subcategorien vind moet hij eenmalig <ul> toevoegen,
waar?
en dan per categorie zoals hij nu doet <li><a href="#" id="index">Subcategorienaam</a></li>. En dan op het einde bij de laatste subcategorie </ul> toevoegen. En dan helemaal aan het einde van de knop moet hij altijd eenmalig </ul> toevoegen om de knop af te sluiten volgens de code die ik in het begin geplaats heb.

Ik hoop dat iemand snapt wat ik probeer uit te leggen, en mij kan helpen. Als het nog onduidelijk is, vraag maar...
ik snap het dus niet..

[ Voor 4% gewijzigd door Michali op 19-02-2005 12:06 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
de manier waarop het CSS menu werkt is wel te volgen? daar heb ik comments bij gezet.

het probleem komt neer op dit
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql_selectpwt = mysql_query( "SELECT * FROM ".$prefix."store_category where cat_father_id = $cat_id_list"); 
$more_cat = MYSQL_NUM_ROWS($sql_selectpwt); 

while ($row = mysql_fetch_array($sql_selectpwt)) 
 { 
  $cat_count = $cat_count+1; 
  $cat_id_list2 = $row["cat_id"]; 
  $subcategory = $row["category"]; 

  $count_products = mysql_query( "select * from ".$prefix."store_inventory where cat_id='$cat_id_list2'"); 
  $totalprod = MYSQL_NUM_ROWS($count_products); 
echo "<ul>"; 
   echo"<li><a href=\"index.php?cat_id=$cat_id_list2&catname='$subcategory'\" class=\"popup\" id=\"index\">[img]'images/custom/bullet.gif'[/img]$subcategory </a></li>"; 
echto "</ul>";
 }


ik ben erachter dat hij bij elke categorie die hij vindt in de database dezelfde code herhaalt. daardoor werkt het menu niet. Wat ik dus nodig heb ik dat hij eenmalig de <UL> en de </UL> neerzet, en niet zoals hij nu doet bij elke categorie.

Nu krijg je dus
code:
1
<UL><li>categorie</li></UL><UL><li>categorie2</li></UL> etc...

Wat moet worden
code:
1
<UL><li>categorie</li><li>categorie2</li></UL> etc...

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Saeverix schreef op zaterdag 19 februari 2005 @ 12:11:
de manier waarop het CSS menu werkt is wel te volgen? daar heb ik comments bij gezet.

het probleem komt neer op dit
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$sql_selectpwt = mysql_query( "SELECT * FROM ".$prefix."store_category where cat_father_id = $cat_id_list"); 
$more_cat = MYSQL_NUM_ROWS($sql_selectpwt); 

while ($row = mysql_fetch_array($sql_selectpwt)) 
 { 
  $cat_count = $cat_count+1; 
  $cat_id_list2 = $row["cat_id"]; 
  $subcategory = $row["category"]; 

  $count_products = mysql_query( "select * from ".$prefix."store_inventory where cat_id='$cat_id_list2'"); 
  $totalprod = MYSQL_NUM_ROWS($count_products); 
echo "<ul>"; 
   echo"<li><a href=\"index.php?cat_id=$cat_id_list2&catname='$subcategory'\" class=\"popup\" id=\"index\">[img]'images/custom/bullet.gif'[/img]$subcategory </a></li>"; 
echto "</ul>";
 }


ik ben erachter dat hij bij elke categorie die hij vindt in de database dezelfde code herhaalt. daardoor werkt het menu niet. Wat ik dus nodig heb ik dat hij eenmalig de <UL> en de </UL> neerzet, en niet zoals hij nu doet bij elke categorie.

Nu krijg je dus
code:
1
<UL><li>categorie</li></UL><UL><li>categorie2</li></UL> etc...

Wat moet worden
code:
1
<UL><li>categorie</li><li>categorie2</li></UL> etc...
Kijk dat is al een stuk duidelijker. Zet dan gewoon die print statement buiten de lus? Zoals dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sql_selectpwt = mysql_query( "SELECT * FROM ".$prefix."store_category where cat_father_id = $cat_id_list"); 
$more_cat = MYSQL_NUM_ROWS($sql_selectpwt); 

echo "<ul>"; 

while ($row = mysql_fetch_array($sql_selectpwt)) 
 { 
  $cat_count = $cat_count+1; 
  $cat_id_list2 = $row["cat_id"]; 
  $subcategory = $row["category"]; 

  $count_products = mysql_query( "select * from ".$prefix."store_inventory where cat_id='$cat_id_list2'"); 
  $totalprod = MYSQL_NUM_ROWS($count_products); 
   echo"<li><a href=\"index.php?cat_id=$cat_id_list2&catname='$subcategory'\" class=\"popup\" id=\"index\">[img]'images/custom/bullet.gif'[/img]$subcategory </a></li>"; 
 }

echo "</ul>";


edit:

>:) :> JHS

[ Voor 17% gewijzigd door Michali op 19-02-2005 12:18 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 16-09 16:02

JHS

Splitting the thaum.

Dat komt omdat je <ul> </ul> in je while loopje hebt staan :) .

edit:
:w Michali :+ .

[ Voor 74% gewijzigd door JHS op 19-02-2005 12:21 ]

DM!


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
ok dan... bedankt mensen. kan mezelf wel slaan nu, dat ik dat niet gezien heb...
bedankt voor de moeite!

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
Maar nu zit ik nog met 1 ding. Zodra er geen subcategorien zijn moet hij die <ul> en </ul> niet toevoegen. Hoe krijg ik dat het makkelijkst voor elkaar?

Want hij klopt nu nog niet helemaal. http://www.webhost4you.nl/shop/index.php
Dat komt daardoor. Hij werkt nu al een heel eind, alleen bij de laatste knop gaat hij de mist in.

[ Voor 41% gewijzigd door Saeverix op 19-02-2005 12:38 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Saeverix schreef op zaterdag 19 februari 2005 @ 12:37:
Maar nu zit ik nog met 1 ding. Zodra er geen subcategorien zijn moet hij die <ul> en </ul> niet toevoegen. Hoe krijg ik dat het makkelijkst voor elkaar?

Want hij klopt nu nog niet helemaal. http://www.webhost4you.nl/shop/index.php
Dat komt daardoor. Hij werkt nu al een heel eind, alleen bij de laatste knop gaat hij de mist in.
Nou je kunt simpel controleren of $more_cat > 0. Deze bevat namelijk al het aantal rijen in de result:
PHP:
1
2
3
4
if ( $more_cat > 0 ) echo "<ul>";
// of
echo $more_cat > 0 ? "<ul>" : "";
// wat je het mooiste vind :)


of je kunt natuurlijk de gehele loop plus echo statements in een if zetten.

[ Voor 12% gewijzigd door Michali op 19-02-2005 12:49 ]

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 20-09 13:02
hardstikke bedankt! hij werkt nu perfect...

People who live in glass houses shouldn't throw stones.

Pagina: 1