Foreach en while
$sub is gecontroleerd
maar $replace is leeg
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
foreach ($sub as $value) {
$replace = '<ul>';
$sql = mysql_query("SELECT id,naam,url FROM '".$value."s'");
while ($objj = mysql_fetch_object($sql)) {
$replace .= '<li><a href="'.$objj->url.'">'.$objj->naam.'</a></li>';
}
$replace .= '</ul>';
$menu = str_replace($value.'s',$replace,$menu);
}
$replace = '<ul>';
$sql = mysql_query("SELECT id,naam,url FROM '".$value."s'");
while ($objj = mysql_fetch_object($sql)) {
$replace .= '<li><a href="'.$objj->url.'">'.$objj->naam.'</a></li>';
}
$replace .= '</ul>';
$menu = str_replace($value.'s',$replace,$menu);
}
Gewijzigd op 02/06/2011 13:46:45 door Nick Nurmodeluxe
Wat zit er in $sub?
$sub[1] = '5';
dus jij hebt tabellen in je db genaamd 5s en 4s etc.?
var_dump($sub);
echo '<br>';
var_dump($replace);
Wat staat er dan op je scherm?
array(1) { [1]=> string(1) "3" }
string(9) "
"
Toevoeging op 02/06/2011 15:41:03:
Thomas van den Bulk op 02/06/2011 14:58:48:
dus jij hebt tabellen in je db genaamd 5s en 4s etc.?
ja
Gewijzigd op 02/06/2011 15:53:00 door Nick Nurmodeluxe
echo $replace;
Wat staat er dan op je scherm?
niks
rechtermuisknop "view source" of "pagina bron bekijken" (of iets wat daar op lijkt)
<ul></ul>
je $replace was dus niet leeg... :-)
Er staat alleen geen data in dus daarom zag jij niks. Er gaat dus iets mis bij het ophalen van de data uit de database.
Geen idee of dit werkt maar vervang regel 4 t/m 6 eens door:
Code (php)
1
2
3
2
3
while ($row = mysql_fetch_assoc($sql)) {
$replace .= '<li><a href="'.$row['url'].'">'.$row['naam'].'</a></li>';
}
$replace .= '<li><a href="'.$row['url'].'">'.$row['naam'].'</a></li>';
}
Gewijzigd op 02/06/2011 16:11:56 door Ozzie PHP
weer alleen <ul></ul>
en in je database staat dus een tabel met de naam 3s en daar staat ook daadwerkelijk iets in?
fout afhandeling voor je sql query, verder lijkt het er op dat je datamodel totaal verkeerd is
bouw een goede var_dump($sql);
doe, dan krijg ik dit
bool(false)
Toevoeging op 02/06/2011 16:35:44:
er zit een fout in de SQL query:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
foreach ($sub as $value) {
$replace = '<ul>';
$sql = mysql_query("SELECT id,naam,url FROM '".$value."s'") or die('fout');
while ($objj = mysql_fetch_object($sql)) {
$replace .= '<li><a href="'.$objj->url.'">'.$objj->naam.'</a></li>';
$obj = $objj->url;
}
$replace .= '</ul>';
$menu = str_replace($value.'s',$replace,$menu);
}
$replace = '<ul>';
$sql = mysql_query("SELECT id,naam,url FROM '".$value."s'") or die('fout');
while ($objj = mysql_fetch_object($sql)) {
$replace .= '<li><a href="'.$objj->url.'">'.$objj->naam.'</a></li>';
$obj = $objj->url;
}
$replace .= '</ul>';
$menu = str_replace($value.'s',$replace,$menu);
}
ik krijg de foutmelding
Gewijzigd op 02/06/2011 16:36:11 door Nick Nurmodeluxe
Gewijzigd op 02/06/2011 16:37:55 door Ozzie PHP
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''3s'' at line 1
Toevoeging op 02/06/2011 16:38:21:
database verbinding bestaat en tabel bestaat ook
$sql = mysql_query("SELECT id,naam,url FROM ".$value."s");
Gewijzigd op 02/06/2011 16:39:45 door Ozzie PHP
Thomas van den Bulk op 02/06/2011 14:58:48:
dus jij hebt tabellen in je db genaamd 5s en 4s etc.?
Leuk.
Begin dan maar opnieuw want tabelnamen mogen niet met een cijfer beginnen. En je hebt de tabelnaam ook nog tussen enkele quotes staan dus wordt het als zijnde tekst gezien. Handig werken zo, zonder foutafhandeling. Dat blijft gokwerk.
moest zijn
(apostrofjes om 3s weg)
- SanThe - op 02/06/2011 16:39:41:
Leuk.
Begin dan maar opnieuw want tabelnamen mogen niet met een cijfer beginnen. En je hebt de tabelnaam ook nog tussen enkele quotes staan dus wordt het als zijnde tekst gezien. Handig werken zo, zonder foutafhandeling. Dat blijft gokwerk.
Thomas van den Bulk op 02/06/2011 14:58:48:
dus jij hebt tabellen in je db genaamd 5s en 4s etc.?
Leuk.
Begin dan maar opnieuw want tabelnamen mogen niet met een cijfer beginnen. En je hebt de tabelnaam ook nog tussen enkele quotes staan dus wordt het als zijnde tekst gezien. Handig werken zo, zonder foutafhandeling. Dat blijft gokwerk.
Vincent Huisman op 02/06/2011 16:18:15:
bouw een goede fout afhandeling voor je sql query, verder lijkt het er op dat je datamodel totaal verkeerd is