Query binnen while werkt niet
Ik ben 2 uur bezig geweest om dit probleem op te lossen, maar het is me nog steeds niet gelukt. Hopelijk kan één van jullie zien (frisse blik) wat er mis gaat. Onderstaande code geeft 3x Resource id #12 weer, maar ik heb echt geen idee waarom! De $aanvulling[‘id’] bestaat wel en die werkt ook netjes binnen de while lus. en als ik de query in phpmyadmin plak krijg ik ook netjes een resultaat terug.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
while($aanvulling = mysql_fetch_assoc($result_aanvullingen)){
$pdk_query = mysql_query("
SELECT
k.id as korting_id,
k.soort_id as soort_id,
k.type_id as type_id,
k.waarde as waarde,
kk.product_id as product_id,
kk.aantal as aantal
FROM
kortingen k
INNER JOIN
kortingen_koppel kk
ON
kk.korting_id = k.id
WHERE
kk.product_id = '".$aanvulling['id']."'
");
$korting_pd = mysql_fetch_assoc($pkd_query);
print_r($aanvulling['id'].' '.$pdk_query.'<br />');
}
?>
while($aanvulling = mysql_fetch_assoc($result_aanvullingen)){
$pdk_query = mysql_query("
SELECT
k.id as korting_id,
k.soort_id as soort_id,
k.type_id as type_id,
k.waarde as waarde,
kk.product_id as product_id,
kk.aantal as aantal
FROM
kortingen k
INNER JOIN
kortingen_koppel kk
ON
kk.korting_id = k.id
WHERE
kk.product_id = '".$aanvulling['id']."'
");
$korting_pd = mysql_fetch_assoc($pkd_query);
print_r($aanvulling['id'].' '.$pdk_query.'<br />');
}
?>
Met deze code krijg ik als resultaat:
1 Resource id #10
2 Resource id #11
3 Resource id #12
Gewijzigd op 01/01/1970 01:00:00 door Jurgen B
$pdk_query is de resultaatset van de query die je uitvoert. Die zul je wel eerst nog moeten fetchen...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$result_aanvullingen = mysql_query("
SELECT
k.id as korting_id,
k.soort_id as soort_id,
k.type_id as type_id,
k.waarde as waarde,
kk.product_id as product_id,
kk.aantal as aantal
FROM
kortingen k
INNER JOIN
kortingen_koppel kk
ON
kk.korting_id = k.id
");
while($aanvulling = mysql_fetch_assoc($result_aanvullingen))
{
print_r( $aanvulling.'<br />');
}
?>
$result_aanvullingen = mysql_query("
SELECT
k.id as korting_id,
k.soort_id as soort_id,
k.type_id as type_id,
k.waarde as waarde,
kk.product_id as product_id,
kk.aantal as aantal
FROM
kortingen k
INNER JOIN
kortingen_koppel kk
ON
kk.korting_id = k.id
");
while($aanvulling = mysql_fetch_assoc($result_aanvullingen))
{
print_r( $aanvulling.'<br />');
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
BTW: Ook al wordt het resultaat niet gefetched dan moet php de query toch nog wel kunnen echo'en?
@emmanuel Delay: Sorry jouw code heb ik niets aan, de while die er om heen stond moet daar ook blijven omdat ik daarin al andere gegevens op haal en nu heb je ook nog m'n where er uit getrokken dus jouw code zal nooit werken :P
Gewijzigd op 01/01/1970 01:00:00 door Jurgen B
Je zult $pdk_query dus eerst nog in een functie als mysql_fetch_assoc() moeten gebruiken voordat je er iets nuttigs mee kan. Ik zie dat je dat nu doet, maar gebruik die $korting_pd dan ook in je print_r() en geef dan ook de veldnaam op. Dus iets als $korting_pd['veldnaam'].
Ik heb gewoon serieus 2 uur naar een typo zitten staren! SLIM :S
Jurgen B schreef op 15.06.2009 23:33:
@ Blanche .. dat was niet het probleem!
Ik heb gewoon serieus 2 uur naar een typo zitten staren! SLIM :S
Ik heb gewoon serieus 2 uur naar een typo zitten staren! SLIM :S
Misschien voor de volgende keer:
Zet dit bovenin je script.
Jurgen B schreef op 15.06.2009 23:33:
Omg als jij $pdk_query, het resultaat van mysql_query(), echot, een ResourceID terug krijgt en je afvraagt waarom dat niet is wat je wilt, lijkt mij toch dat dat duidelijk wel het probleem is.@ Blanche .. dat was niet het probleem!
Maar goed, als jij dat een typo wilt noemen prima. Feit blijft dat je $pdk_query niet kunt echoën en dat je die resultaat set eerst moet fetchen voordat je iets kunt echoën.