Foreach en while
Waarom werkt dit niet?
$sub is gecontroleerd
maar $replace is leeg
$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?
getallen, bijv:
$sub[1] = '5';
$sub[1] = '5';
dus jij hebt tabellen in je db genaamd 5s en 4s etc.?
voeg eens helemaal onderaan dit toe:
var_dump($sub);
echo '<br>';
var_dump($replace);
Wat staat er dan op je scherm?
var_dump($sub);
echo '<br>';
var_dump($replace);
Wat staat er dan op je scherm?
ik krijg dit
array(1) { [1]=> string(1) "3" }
string(9) "
"
Toevoeging op 02/06/2011 15:41:03:
ja
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
oke, en haal dat stukje nu weer eens weg en in plaats daarvan
echo $replace;
Wat staat er dan op je scherm?
echo $replace;
Wat staat er dan op je scherm?
niks
en als je de pagina bron bekijkt wat staat daar dan in?
rechtermuisknop "view source" of "pagina bron bekijken" (of iets wat daar op lijkt)
rechtermuisknop "view source" of "pagina bron bekijken" (of iets wat daar op lijkt)
dit staat er
<ul></ul>
<ul></ul>
tadaaaa....
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:
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?
bouw een goede fout afhandeling voor je sql query, verder lijkt het er op dat je datamodel totaal verkeerd is
als ik
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:
ik krijg de foutmelding
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
er zit dus iets niet goed in je query... maar wat dat is weet ik niet. Heb je uberhaupt een database verbinding opgezet?
Gewijzigd op 02/06/2011 16:37:55 door Ozzie PHP
en dit is de foutmelding:
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
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
haal die aanhalingstekens eens weg, zo:
$sql = mysql_query("SELECT id,naam,url FROM ".$value."s");
$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.
opgelost:
moest zijn
(apostrofjes om 3s weg)
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




