[PHP] Hergebruiken Query

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Ramasha
  • Registratie: September 2005
  • Laatst online: 24-01 19:28
Beste GoT,

Ik ben bezig met een stuk code, ik gebruik hierin 2x de oorspronkelijke data aangevuld met specifieke informatie uit een database. Uit het oogpunt van lief zijn voor mysql-server wil ik de eerste query 1x uitvoeren. Tot dusver geen probleem.

Hoofdquery uitvoeren,
Lopen -> extra informatie opvragen verwerken
Ouput
Hoofdquery resulaten opvragen en weer lopen

Daar gaat het dus fout, het resultaat voor de 2de keer doorlopen. Ik kom er maar neit achter waarom ik een query resultaat maar 1x mag gebruiken.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//Algemene Select -:START:-
//Selecteer spelers_id
$speler = $_SESSION['speler'];
//Voer query uit.
$spelers_id_query = mysql_query('SELECT id FROM spelers WHERE gebruikersnaam="'.$speler.'"');                   
//Als er resultaten zijn.
if(mysql_num_rows($spelers_id_query)) {
    $spelers_query = mysql_fetch_object($spelers_id_query);
    //Haal nu alle aandelen in bezit uit DB.
    $select_aandelen_plain= '
    SELECT * FROM spelers_aandelen
    WHERE spelers_id="'.$spelers_query->id.'"
    ORDER BY bedrijfs_id
    ';
    //Verstuur query
    $select_aandelen = mysql_query($select_aandelen_plain);
}
//Algemene Select -:END:-
                
                
//Aandelen overzicht. -:START:-
//Als er resultaten zijn.
if(mysql_num_rows($select_aandelen)) {
    echo '<strong>Uw aandelen:</strong> <a href="javascript:showLevel(\'table_koersen\');">[img]"images/koersen/openen.gif"></a>';
    echo[/img]';
    echo '<table>';
    echo '<tr><th>Bedrijfsnaam</th><th>Aantal aandelen</th><th>Koers (aankoop)</th><th>Koers (huidig)</th><th>Verschil</th></tr>';
    //Loop door resulaten.
    while($aandeel = mysql_fetch_object($select_aandelen)) {
        //Inhoud loop
    }
    echo '</table>';
}
//Aandelen overzicht. -:END:-
                    

//Aandelen waarde. -:START:-
//Als er resultaten zijn van $select_aandelen.
if(mysql_num_rows($select_aandelen)) {
    echo '&nbsp;&nbsp;&nbsp;<strong>Aandelen-waarde:</strong> <a href="javascript:showLevel(\'table_aandelen_waarde\');">[img]"images/koersen/openen.gif"></a>';
    echo[/img]';
    echo '<tr><th>&nbsp;&nbsp;&nbsp;Bedrijfsnaam</th><th>Aantal aandelen</th><th>Waarde (aankoop)</th><th>Waarde (huidig)</th><th>Verschil</th></tr>';
    //Loop door resulaten.
    while($aandeel = mysql_fetch_object($select_aandelen)) {
        //Inhoud loop2
    }
    echo '</table>';
}
//Aandelen waarde. -:END:-
echo '</div>';


Wie weet wat ik fout doe/vergeet,

Vriendelijke groet,

Acties:
  • 0 Henk 'm!

Verwijderd


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 21:11
Waarom plaats je niet alles eerst in een array?

Acties:
  • 0 Henk 'm!

  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 16-09 16:02

JHS

Splitting the thaum.

Je controleert nu twee keer of $select_aandelen rijen heeft, en gaat daarna loopen. Is het niet makkelijker om het zo te doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(mysql_num_rows($select_aandelen)) {
  while($aandeel = mysql_fetch_object($select_aandelen)) {
    $aandelen[] = $aandeel
  }
  /* aandelen overzicht table zooi */
  foreach($aandelen as $aandeel) {
    /* presenteren */
  }
  /* einde aandelen overzicht table zooi */
  /* start aandelen waarde overzicht table zooi */
  foreach($aandelen as $aandeel) {
    /* presenteren */
  }
  /* einde aandelen waarde overzicht table zooi */
}
:? .

DM!


Acties:
  • 0 Henk 'm!

  • Ramasha
  • Registratie: September 2005
  • Laatst online: 24-01 19:28
JHS schreef op zondag 26 februari 2006 @ 11:41:
Je controleert nu twee keer of $select_aandelen rijen heeft, en gaat daarna loopen. Is het niet makkelijker om het zo te doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(mysql_num_rows($select_aandelen)) {
  while($aandeel = mysql_fetch_object($select_aandelen)) {
    $aandelen[] = $aandeel
  }
  /* aandelen overzicht table zooi */
  foreach($aandelen as $aandeel) {
    /* presenteren */
  }
  /* einde aandelen overzicht table zooi */
  /* start aandelen waarde overzicht table zooi */
  foreach($aandelen as $aandeel) {
    /* presenteren */
  }
  /* einde aandelen waarde overzicht table zooi */
}
:? .
Bedankt het is me zo gelukt om het werkend te krijgen. Ik wist niet dat je een object in array kon stoppen en vervolgens weer het object aanroepen. Hartelijk bedankt :)

[ Voor 22% gewijzigd door Ramasha op 26-02-2006 13:18 . Reden: Problem Solved ]


Acties:
  • 0 Henk 'm!

Verwijderd

De pointer moet inderdaad terug naar 0. Kon je trouwens ook in het eerste commentaar van de manual zien.

Acties:
  • 0 Henk 'm!

  • ZroBioNe
  • Registratie: Augustus 2001
  • Niet online
Als je lief wilt zijn voor de MySQL server is het misschien ook een idee om de speler_id in de sessie te zetten :)
Pagina: 1