Menu uit database halen en in str_replace zetten

Status
Niet open voor verdere reacties.

pepijnie

Nieuwe gebruiker
Lid geworden
18 dec 2011
Berichten
4
Hallo,

Ik ben Pepijn :P
en ik had een vraag over een menu met PHP dat me nu nogsteeds niet is gelukt.

Ik heb dus een template en sommige dingen van die template worden verandert met str_replace (Zoals inhoud en enz.).
En nu ben ik dus bezig met het menu...
Dit is een stukje uit mijn PHP:
PHP:
// Haal menu uit database via een functie
function menudbq()
{
$pagesq = mysql_query("SELECT * FROM pages");
while($pages = mysql_fetch_array($pagesq))
  {
  echo '<li>';
  echo '<a href=#>';
  echo $pages['naam'];
  echo '</a> </li>';
  }
 }
 
// Maak een mooie value voor het menu uit de database
$menudb = menudbq();

// Get template
$template = file_get_contents('layouts/default/index.php');

// Maak template in orde
$template = str_replace('{pagetitle}','test',$template);
$template = str_replace('{inhoud}','test',$template); 
$template = str_replace('{paginatitel}','test',$template); 
$template = str_replace('{sitetitel}','test',$template); 
$template = str_replace('{menu}',"$menudb",$template); 
$template = str_replace('{copyright}',"$copyright",$template); 

// En nou laten zien :D
echo $template;
output daarvan is: http://imageshack.us/photo/my-images/339/output001.png/

Oke, dat is niet goed...
Misschien denk je nu dat er iets met mijn template is, maar daar is niks mee want als ik deze code doe (zie hieronder) werkt de template zoals het hoort

PHP:
// Get template
$template = file_get_contents('layouts/default/index.php');

// Maak template in orde
$template = str_replace('{pagetitle}','test',$template);
$template = str_replace('{inhoud}','test',$template); 
$template = str_replace('{paginatitel}','test',$template); 
$template = str_replace('{sitetitel}','test',$template); 
$template = str_replace('{menu}',"<li><a href=#>TESTPAGINA</a></li>",$template); 
$template = str_replace('{copyright}',"$copyright",$template); 

// En nou laten zien :D
echo $template;
output daarvan: http://imageshack.us/photo/my-images/23/output002.png/

Dus zoals je ziet heeft het iets te maken met de functie, dus wanner hij alles uit de database haalt.
Zou iemand mij hiermee kunnen helpen

Alvast bedankt,
Pepijn

Als je mijn vraag niet snapt of een verbetering hebt voor de code, reageer dan even op dit topic.
 
Laatst bewerkt:
Het probleem zit in de functie menudbq. Op regel 15 ken je de door die functie opgeleverde waarde toe aan de variabele $menudb. De functie levert echter geen waarde op, hij "echo't" enkel wat tekst uit de database. Waarschijnlijk moet je in die functie een variabele aanmaken, de waardes die je nu "echo't" daaraan toekennen (concateneren) en die variabele "returnen" aan het einde van de functie.
 
Laatst bewerkt:
met andere woorden.
Maak hier een string van
echo '<li>';
echo '<a href=#>';
echo $pages['naam'];
echo '</a> </li>';

en return die string
 
je functie moet dit zijn
PHP:
function menudbq()
{
$pagesq = mysql_query("SELECT * FROM pages");
$menu = '<ul>';
while($pages = mysql_fetch_array($pagesq))
  {
  $menu .='<li>';
  $menu .='<a href=#>';
  $menu .=$pages['naam'];
  $menu .='</a> </li>';
  }
$menu = '</ul>';
return $menu;
 }
 
Bedankt voor de hulp!!! :D
Ik werkte zonder die puntjes :P.
Wat betekend dat puntje na $menu eigenlijk :$

Pepijn
 
$string = "tekst". $tekst."blahblah"

$string .= "plak deze sting achter aan de bestaande string"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan