[edit] | SELECT Laatst toegevoegd ID
Heb een hele domme vraag, Maar kom er even niet uit.
Om zo min mogelijk query's te gebruiken voeg ik veel samen in 1 query.
Dit is mijn query:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
$aQuery =
"
SELECT
poll.ID,
poll.Vraag,
poll.Datum,
antwoorden.Antwoord
FROM
poll,
antwoorden
WHERE
poll.ID = antwoorden.Poll_ID
ORDER BY
poll.Datum
DESC
";
?>
$aQuery =
"
SELECT
poll.ID,
poll.Vraag,
poll.Datum,
antwoorden.Antwoord
FROM
poll,
antwoorden
WHERE
poll.ID = antwoorden.Poll_ID
ORDER BY
poll.Datum
DESC
";
?>
Zoals je ziet haal ik de vraag en de antwoorden in 1 query op.
Nu komt dus mijn vraag, Hoe kan ik ervoor zorgen dat ik de vraag 1 keer kan weergeven en daaronder met een while loop de antwoorden voor de vraag?
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
Maar je hebt toch bij iedere vraag + antwoord maar 2 queries? Hoeveel vragen heb je op elke pagina ? 100000000?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?PHP
/* Laat poll vraag zien */
echo '<strong>'.mysql_result($aResult, 0, 'Vraag').'</strong><br/><br/>';
/* mysql_data_seek zodat we onze while loop compleet kunnen laten zien */
mysql_data_seek($aResult, 0);
/* While loop beginnen zodat we alle antwoorden kunnen weergeven */
while($aRow = mysql_fetch_assoc($aResult))
{
echo $aRow['Antwoord'].'<br/><br/>';
}
?>
/* Laat poll vraag zien */
echo '<strong>'.mysql_result($aResult, 0, 'Vraag').'</strong><br/><br/>';
/* mysql_data_seek zodat we onze while loop compleet kunnen laten zien */
mysql_data_seek($aResult, 0);
/* While loop beginnen zodat we alle antwoorden kunnen weergeven */
while($aRow = mysql_fetch_assoc($aResult))
{
echo $aRow['Antwoord'].'<br/><br/>';
}
?>
Alleen ben ik er dus achter gekomen dat me Query niet ok is, Het probleem ligt hem bij het toevoegen van nog een poll.
Als ik bijvoorbeeld een poll toevoeg, Dan laat hij de bijhorende antwoorden wel zien, Alleen laat hij ook de antwoorden van de vorige poll zien.
Het probleem ligt hem volgens mij dat na de WHERE nog een AND moet komen, Als ik bijvoorbeeld AND poll.ID = 2 toevoeg, Dan laat hij het kerug netjes zien, Iemand enig idee hoe ik dit op kan lossen? Ik heb ook geprobeerd gebruik te maken van INNER JOIN alleen dat maakt geen verschil.
Graag hoor ik reacties van jullie.
Edit:
INNER JOIN versie:
Nog steeds hetzelfde, Als ik een WHERE p.ID = 1 na de ON zet, Dan laat hij het wel goed zien, Ik moet dus een oplossing hebben dat hij de laatst toegevoegde id pakt.
[edit2]
Titel even aangepast omdat het een ander probleem is.
INNER JOIN versie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
$aQuery =
"
SELECT
p.ID,
p.Vraag,
a.Antwoord
FROM
poll AS p
INNER JOIN
antwoorden AS a
ON
p.ID = a.Poll_ID
ORDER BY
p.Datum
DESC
";
?>
$aQuery =
"
SELECT
p.ID,
p.Vraag,
a.Antwoord
FROM
poll AS p
INNER JOIN
antwoorden AS a
ON
p.ID = a.Poll_ID
ORDER BY
p.Datum
DESC
";
?>
Nog steeds hetzelfde, Als ik een WHERE p.ID = 1 na de ON zet, Dan laat hij het wel goed zien, Ik moet dus een oplossing hebben dat hij de laatst toegevoegde id pakt.
[edit2]
Titel even aangepast omdat het een ander probleem is.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
*bump*
en volgens mij moet dat gewoon met max kunnen
Zoals je misschien wel ziet, selecteer ik de vraag en de bij behorende antwoorden in 1 query. Ik gebruiker order by om de juiste vraag te selecteren, Alleen nu heb je dan dus dat probleem, Dan selecteerd hij dus alle antwoorden inplaats van de antwoorden die bij de vraag horen. Heb je misschien een idee hoe ik dit kan oplossen? Wil zo min mogelijk query's gebruiken. Ik heb al een beetje zitten te kijken met MAX, Maar helaas geen resultaat.
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
zo min mogelijk != 1
+ dan was je al lang klaar geweest :P
Hmmm ok. Zelf dacht ik dat het wel kon om de vraag en de antwoorden te selecteren in 1 query. Ik wacht nog even af of er nog anderen zijn die een oplossing weten. Ik gebruik nooit !=1 ^-^ .
Zou mijn methode wel werken?
*bump*
* Nog maar een bumpje *