Foreach en while

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 13:44:47
Quote Anchor link
Waarom werkt dit niet?
$sub is gecontroleerd
maar $replace is leeg

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}
Gewijzigd op 02/06/2011 13:46:45 door Nick Nurmodeluxe
 
PHP hulp

PHP hulp

20/04/2024 05:00:03
 
Ozzie PHP

Ozzie PHP

02/06/2011 14:42:33
Quote Anchor link
Wat zit er in $sub?
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 14:56:48
Quote Anchor link
getallen, bijv:

$sub[1] = '5';
 
Thomas van den Bulk

Thomas van den Bulk

02/06/2011 14:58:48
Quote Anchor link
dus jij hebt tabellen in je db genaamd 5s en 4s etc.?
 
Ozzie PHP

Ozzie PHP

02/06/2011 14:59:35
Quote Anchor link
voeg eens helemaal onderaan dit toe:

var_dump($sub);
echo '<br>';
var_dump($replace);


Wat staat er dan op je scherm?
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 15:39:53
Quote Anchor link
ik krijg dit

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
 
Ozzie PHP

Ozzie PHP

02/06/2011 15:46:18
Quote Anchor link
oke, en haal dat stukje nu weer eens weg en in plaats daarvan

echo $replace;


Wat staat er dan op je scherm?
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 15:53:09
Quote Anchor link
niks
 
Ozzie PHP

Ozzie PHP

02/06/2011 15:57:03
Quote Anchor link
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)
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 16:05:19
Quote Anchor link
dit staat er

<ul></ul>
 
Ozzie PHP

Ozzie PHP

02/06/2011 16:10:42
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
while ($row = mysql_fetch_assoc($sql)) {
  $replace .= '<li><a href="'.$row['url'].'">'.$row['naam'].'</a></li>';
}
Gewijzigd op 02/06/2011 16:11:56 door Ozzie PHP
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 16:14:27
Quote Anchor link
weer alleen <ul></ul>
 
Ozzie PHP

Ozzie PHP

02/06/2011 16:18:11
Quote Anchor link
en in je database staat dus een tabel met de naam 3s en daar staat ook daadwerkelijk iets in?
 
Vincent Huisman

Vincent Huisman

02/06/2011 16:18:15
Quote Anchor link
bouw een goede fout afhandeling voor je sql query, verder lijkt het er op dat je datamodel totaal verkeerd is
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 16:33:49
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}

ik krijg de foutmelding
Gewijzigd op 02/06/2011 16:36:11 door Nick Nurmodeluxe
 
Ozzie PHP

Ozzie PHP

02/06/2011 16:36:34
Quote Anchor link
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
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 16:37:49
Quote Anchor link
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
 
Ozzie PHP

Ozzie PHP

02/06/2011 16:39:29
Quote Anchor link
haal die aanhalingstekens eens weg, zo:

$sql = mysql_query("SELECT id,naam,url FROM ".$value."s");
Gewijzigd op 02/06/2011 16:39:45 door Ozzie PHP
 
- SanThe -

- SanThe -

02/06/2011 16:39:41
Quote Anchor link
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.
 
Nick Nurmodeluxe

Nick Nurmodeluxe

02/06/2011 16:40:22
Quote Anchor link
opgelost:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("SELECT id,naam,url FROM '".$value."s'") or die('fout');

moest zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("SELECT id,naam,url FROM ".$value."s") or die('fout');

(apostrofjes om 3s weg)
 
Vincent Huisman

Vincent Huisman

02/06/2011 16:42:50
Quote Anchor link
- SanThe - op 02/06/2011 16:39:41:
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
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.