PHP Halen uit je MySql Database
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php $newquery = "SELECT * FROM sna_menu WHERE name = '".$_GET['page']."'";
$newresult = mysql_query($newquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newresult)){
echo $nl ; }
?>
$newresult = mysql_query($newquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newresult)){
echo $nl ; }
?>
In deze pagina's staat echter PHP script en deze worden weergegeven als tekst en niet verder verwerkt. Weet iemand hoe dit komt en hoe ik het zo krijg dat de scripts gewoon verwerkt worden alsof ze in de php pagina staan.
Ik heb nu de volgende script:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php $newpartyquery = "SELECT * FROM sna_menu WHERE name = '".$_GET['page']."'";
$newpartyresult = mysql_query($newpartyquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newpartyresult)){
eval("\$nl = $nl2;");
echo $nl2 ; } ?>
$newpartyresult = mysql_query($newpartyquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newpartyresult)){
eval("\$nl = $nl2;");
echo $nl2 ; } ?>
Maar krijg daarmee de volgende foutmelding:
Parse error: syntax error, unexpected ';' in C:\Program Files (x86)\xampp\htdocs\sna\index.php(145) : eval()'d code on line 1
Kan dit komen doordat de string niet alleen php, maar ook tekst en HTML bevat?
eval("\$nl = $nl2;");
dus
eval("\$nl2 = $nl;");
echo $nl2;
Parse error: syntax error, unexpected T_LNUMBER in C:\Program Files (x86)\xampp\htdocs\sna\index.php(145) : eval()'d code on line 1
Tja, dan zal je die code na moeten gaan zien.
Omdat je de eval() aanroept vanuit php raakt de server in de war met de tags van HTML en PHP.
Een oplossing hiervoor is het beeindigen van PHP bij het aanroepen en het daarna dus weer openen, hiervoor het volgende gewijzigde script:
Code (php)
1
2
3
4
5
2
3
4
5
<?php $newquery = "SELECT * FROM sna_menu WHERE name = '".$_GET['page']."'";
$newresult = mysql_query($newquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newresult)){
eval('?>
$newresult = mysql_query($newquery) or die ("FOUT: " .mysql_error());
while (list($id, $ord, $name, $title, $level, $sub, $url, $nl, $en) =
mysql_fetch_row($newresult)){
eval('?>
Waarin je in deze regel kunt zien dat php eerst afgesloten wordt, daarna begint de evaluatie van het PHP gedeelte uit de Database en daarna wordt PHP weer geopend:
eval('?>' . $nl . '
En zo te zien heeft deze website ook moeite met het principe, maar het werkt bij mij goed...
Elwin
Wat je zegt klopt wel, maar als je eerst een stuk HTML hebt dan loopt ie ook niet zoals het hoort....