[PHP/MySQL] query in een for-loop

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ik heb het probleem al vaker gehad,
en wil toch eens weten hoe je dit goed oplost.

Ik heb twee tabellen in een DB.
Eén tabel bevat een vraag met een id.
De ander bevat een aantal punten die bij die vraag horen,
met een gelijke id.

Dus bij 1 vraag kunnen meerdere punten horen.
Nu wil ik een query/ stuk code schrijven waar het zo naar voren komt:

print vraag 1

print punt 1 van vraag 1
print punt 2 van vraag 1
print punt 3 van vraag 1
print punt 4 etc

print vraag 2

print punt 1 van vraag 2
print punt 2 van vraag 2
print punt 3 van vraag 2
print punt 4 etc

print vraag 3

etc.

Maar ik kom er niet uit.

Het grote probleem is altijd dat een mysql_fetch_array maar 1 keer gebruikt kan worden, en als ik alle mysql code in forloop zet , krijg ik geen nieuwe resultset lijkt het....

Ik heb al innerjoin gebprobeerd, of het allemaal eerst in een array te gooien.
Maar ik ben al de hele dag bezig met code schrijven en zie het niet meer....
Ik wil natuurlijk wel 'beetje' nette oplossing, althans: het moet toch met een while of foreach te doen zijn?

dit is mijn code nu (100x aangepast :) ), niet dat het goed werkt.
maar zien jullie dat ik niet gewoon een script vraag.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
                        $all = mysql_query("SELECT * FROM questions INNER JOIN focus ON questions.pointer=focus.pointer ORDER BY questions.pointer ASC")                            or die("all:" . mysql_error());

                        while($fetch_all = mysql_fetch_array($all))
                        {   

                                print "<tr class=\"header\"> <td>";
                                print "<span class=\"bold\">Subvraag $fetch_all[pointer]:</span>";
                                print "</td> </tr>";
                            
                                print"<tr> <td>";
                                print "$fetch_all[question]";
                                print "<br><br> focus: <br> <ul>";

                                print "<li>$fetch_all[pointer] $fetch_all[focus]</li>";


                        }


dank alvast voor degene die het wel ziet!

_/-\o_

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 22:25

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Kleine opmerking:

PHP:
1
$fetch_all[question]

Moet zijn
PHP:
1
$fetch_all['question']


En bij alle situaties uiteraard :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En wat is nu je vraag? Hoe je zorgt dat er een kopje boven alles komt te staan?

PHP:
1
2
3
4
5
6
7
8
9
$query = mysql_query('SELECT vraag, subvraag, enz FROM tabel1, tabel2, enz WHERE blaat');
$vr = '';
while ($rij = mysql_fetch_array($query)) {
  if ($vr != $rij['vraag']) {
    echo '<b>Vraag '.$rij['vraag'].'</b><br /><br />';
    $vr = $rij['vraag'];
  }
  echo 'Subvraag '.$rij['subvraag'].'<br />';
}

Lijkt me niet zo'n lastig concept? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ik begrijp je query niet helemaal.
Die enz, wat is dat? Het is namelijk per vraag variabel hoevel subvragen er zijn.
En via jou code klopt mijn result ook net helemaal,
Dit is wat is van gemaakt heb:

PHP:
1
2
3
4
5
6
7
8
9
10
11
// hiermee selecteer ik alles neem ik aan.
$query = mysql_query('SELECT question, focus FROM questions, focus');
$vr = '';
while ($rij = mysql_fetch_array($query)) {
  if ($vr != $rij['question']) {
    echo '<b>Vraag '.$rij['question'].'</b><br /><br />';
    $vr = $rij['question'];
  }
  // dit print de alle subvragen onder de vraag met hetzelfde id?
  echo 'Subvraag '.$rij['focus'].'<br />';
}


Ik krijg nu niet het resultaat:

HOOFDVRAAG: (id 1)

subvraag (id1)
subvraag (id1)
subvraag (id1)
etc


HOOFDVRAAG: (id 2)

subvraag (id2)
subvraag (id2)
subvraag (id2)
etc

mijn naam slaat nergens op, althans niet op mij :P


Acties:
  • 0 Henk 'm!

Verwijderd

fetch_array maar 1 keer gebruiken?

try this one: mysql_data_seek

[ Voor 7% gewijzigd door Verwijderd op 13-10-2004 18:20 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Die query van mij is ook geen echte query, je moest daar gewoon je eigen query nemen. 8)7
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// hiermee selecteer ik alles neem ik aan.
$query = mysql_query('SELECT question, focus FROM questions, focus
           WHERE questions.pointer = focus.pointer ORDER BY questions.pointer ASC');
$vraag = $subvraag = 0;
$vr = '';
while ($rij = mysql_fetch_array($query)) {
  if ($vr != $rij['question']) {
    $vraag++;
    echo '<b>HOOFDVRAAG: '.$vraag.'</b><br /><br />';
    $vr = $rij['question'];
  }
  $subvraag++;
  echo 'Subvraag '.$subvraag.' van vraag '.$vraag.'<br />';
}

:?

[ Voor 35% gewijzigd door NMe op 13-10-2004 18:23 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
super! Thanx a lot.
Ik snap nog niet helemaal hoe, maar dat komt morgen of straks zeker.
De truc zit hem kennelijk in de $vr='' en daarna een !=

anyhoe: blij :D

mijn naam slaat nergens op, althans niet op mij :P

Pagina: 1