Versio

menu uit MySQL (script lissy)

Overzicht Reageren

SCO

SCO

06/08/2007 21:15:00
Quote Anchor link
Hoi allemaal,

Ik gebruik het dynamische menu van lissy. Dit script geeft een boomstructuur weer op basis van de data uit MySQL.
Het script staat hier:

http://www.phphulp.nl/php/scripts/3/522

Ik heb het script en de tabellen exact zo overgenomen.
Het script lijkt echter alleen te werken als ik in de kolom MenuNaam een getal invul.

Het lijkt dan hier niet goed te gaan:
echo '<a href="?Menu='.$remove_menu.'">'.$img_min.'</a>'.$menunaam[$i]."\n";

Hij geeft alleen de menunaam weer als het een getal is.

Wie kan mij ermee helpen? Graag zou ik willen dat de menunaam gewoon wordt weergegeven, dus categorie namen, waaronder de subcategorieen worden weergegeven.

Alvast bedankt!
 
PHP hulp

PHP hulp

25/05/2012 09:10:33
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Frank -

Frank -

06/08/2007 21:20:00
Quote Anchor link
$menunaam is een array, deze kun je dus ook even snel op het scherm zetten om te checken wat daar nu in staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
print_r($menunaam);
?>

Zet dit eens in de code wanneer de array is aangemaakt en gevuld. Dan wordt er vast een hoop duidelijk over de inhoud.
 
SCO

SCO

06/08/2007 21:25:00
Quote Anchor link
oke ga ik even doen!
 
SCO

SCO

06/08/2007 21:27:00
Quote Anchor link
Hij geeft dit weer:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4

?
 
- SanThe -

- SanThe -

06/08/2007 21:29:00
Quote Anchor link
Dan zitten er toch alleen maar getallen in.
 
Frank -

Frank -

06/08/2007 21:35:00
Quote Anchor link
SCO schreef op 06.08.2007 21:27:
Hij geeft dit weer:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4

?
Dan zijn er in elk geval 2 mogelijkheden: Jij hebt getallen in de database staan óf je gebruikt het id om de array te vullen.

Dit stukje code haalt de gegevens op en zet het resultaat in de array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
$query
="SELECT ID, MenuNaam FROM Menu";
$sql=mysql_query($query) or trigger_error(mysql_error());

$total_menu=0;
while($data=mysql_fetch_array($sql))
{

   // voor later gebruik :)
   $menunaam[]=$data['MenuNaam'];
   $total_menu++;
}

?>

Weet je 100% zeker dat jij ook $data['MenuNaam'] gebruikt als input voor de array?
 
SCO

SCO

06/08/2007 21:36:00
Quote Anchor link
Ja..als ik het vervang door namen, dan krijg ik dit:

Array ( [0] => Nepticulidae [1] => Pyralidae [2] => Geleichiidae [3] => Pterophoridae ) ?>

Dan geeft hij alleen de categorien weer, maar niet de subcategorien. Dat is dus raar. De subcategorien worden wel gevuld als ik alleen die numerieke getallen invoer. Het ziet er dus zo uit:

- Nepticulidae
[leeg]
- Pyralidae
[leeg]
- Geleichiidae
[leeg]
- Pterophoridae
[leeg]

Als ik Nepticulidae, Pyralidae, Geleichiidae, Pterophoridae etc vervang in de database [Menu] dan geeft hij wel de subcatergorieen.
 
SCO

SCO

06/08/2007 21:37:00
Quote Anchor link
even je post lezen Frank! :) dank dat jullie me willen helpen alvast!
 
- SanThe -

- SanThe -

06/08/2007 21:43:00
Quote Anchor link
@SCO: Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig dehttp://www.phphulp.nl/imgs/forum/edit.gif knop om je tekst aan te passen.
 
SCO

SCO

06/08/2007 21:48:00
Quote Anchor link
@ Frank, ja volgens mij gebruikt ie $data['MenuNaam'] als input voor de array. Misschien gaat het hier mis?

$query2="SELECT LinkNaam, Url, Target FROM MenuLinks WHERE Menu=$num";

$num is namelijk alleen een numerieke variabele?
 
Frank -

Frank -

06/08/2007 22:14:00
Quote Anchor link
$num is gewoon een tellertje en niet meer dan dat.

Persoonlijke mening: Dit script rammelt!

Het tellertje $num heeft helemaal niks te maken met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
`Menu` varchar(150) NOT NULL default '',
Het tellertje heeft namelijk geen enkel verband met de data die in de database staat. Er is bv. ook geen enkel verband tussen de 2 tabellen, geen idee wat je hiermee zou moeten doen.

Tip: Ga zelf een script schrijven, ben je waarschijnlijk sneller klaar.
 
SCO

SCO

06/08/2007 22:21:00
Quote Anchor link
Hoi Frank,

Ben inmiddels iets verder, het gaat duidelijk mis bij de 2e query.
Heb nu dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
      $query2
="SELECT LinkNaam, Url, Target FROM MenuLinks WHERE Menu LIKE ".$menunaam[$i]."";

      $sql2=mysql_query($query2) ;
      // de items voor de links uitlezen
      // en de menu uitgeklapt weergeven

     while ($var = mysql_fetch_object($sql2))
    {

echo "<tr><td>". $var->LinkNaam ."";

}

?>


Alleen where pakt hij niet, dus WHERE Menu LIKE ".$menunaam[$i]."";

Haal ik WHERE weg, en er dit van maak:
$query2="SELECT LinkNaam, Url, Target FROM MenuLinks

Dan zet ie netjes alle bestaande subcategorieen onder de categorieen. Er is dus iets mis in het WHERE gedeelte van de query?

print_r($menunaam); geeft nog steeds alle categorieen. Hoe kom ik erachter of ".$menunaam[$i].""; wel klopt?

EDIT:
Ik ben erachter:
Door in het gehele script alleen de 2e query te vervangen door deze query:

$query2="SELECT * FROM MenuLinks WHERE Menu LIKE '$menunaam[$i]'";

Lukt het uiteindelijk!

Bedankt voor alle hulp!
Gewijzigd op 01/01/1970 01:00:00 door SCO
 



Overzicht Reageren

Get Adobe Flash player