[php / MySQL]While op de zelfde query / pointer terug zetten

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Hallo, ik heb een while loop met daarin een while loop die gebruik maken van de zelfde query. Mijn probleem is alleen dat als hij mijn eerste while heeft doorlopen staat de pointer één stap te ver. daardoor mijn tweede while de eerste loop niet print.

Ik zit zelf te denken aan een reset ofzoiets zodat de pointer weer op nul komt te staan.

Wat ook een mogelijkheid is om het volgende tedoen:
PHP:
1
2
3
4
5
6
7
    <tr>
        <td class=tekst width=40><a href=../../detail.php?id=<? echo $var_producten["id"]; ?>>[img]../images/producten/<?[/img] alt="<? echo $var_producten["product_naam"]; ?>" border=0 width=40 height=40></a></td>
        <td width=260 valign=top><a href=../../detail.php?id=<? echo $var_producten["id"]; ?> class=tekst><? echo $var_producten["product_naam"]; ?><br><font class=smallgraytekst><? echo $lengte . $var_producten["regelbaar"] . $var_producten["batterijen"]; ?></font></a></td>
        <td class=tekst align=right valign=top><? echo $var_artikelen["aantal"]; ?></td>
        <td class=tekst align=right valign=top>€ <? printf ("%01.2f", $var_producten["prijs"]); ?></a></td>
        <td class=tekst align=right valign=top>€ <? printf ("%01.2f", $totaal_prijs); ?></a></td>
    </tr>

deze code dus voor mijn 2e while zo dat hij de eerste positie dus pakt via de eerste while, maar dit vind ik dus niet echt netjes.

Hier de volledige 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
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?
$query_navigatie = mysql_query("SELECT klant_id FROM ". $tabel . " WHERE " . $zoek_optie . " LIMIT " . $offset . "," . $perpage . "") or report_mysql_error("SELECT bestelling_bezorgadres orders/overzicht.php");

    while ($var_navigatie = mysql_fetch_array($query_navigatie)) {

        $query_joins = mysql_query ("SELECT
                                          *
                                      FROM
                                          bestelling_factuuradres
                                 LEFT JOIN
                                          bestelling_bezorgadres
                                        ON
                                          bestelling_bezorgadres.klant_id = bestelling_factuuradres.klant_id
                                LEFT JOIN
                                          bestelling_gegevens
                                        ON
                                          bestelling_gegevens.klant_id = bestelling_factuuradres.klant_id
                                 LEFT JOIN
                                          bestelling_artikelen
                                        ON
                                          bestelling_artikelen.klant_id = bestelling_factuuradres.klant_id
                                     WHERE
                                          bestelling_factuuradres.klant_id = '" . $var_navigatie["klant_id"] . "'") or report_mysql_error ("SELECT bestelling_factuuradres, bestelling_artikelen, bestelling_gegevens JOIN bestelling_afronden.php");
        $var_joins = mysql_fetch_array($query_joins);
?>
    <tr>
        <td colspan=2><font class=boldheader>Klant nummer: <? echo $var_joins["klant_id"]; ?></font></td>
    </tr>
    <tr>
        <td colspan=2 class=tekst>&nbsp;</td>
    </tr>
    <tr>
        <td class=header>Factuuradres:</td>
        <td class=header>Bezorgadres:</td>
    </tr>
    <tr>
        <td class=tekst ><? echo $var_joins["fa_voornaam"] . " " . $var_joins["fa_achternaam"]; ?></td>
        <td class=tekst><? echo $var_joins["ba_voornaam"] . " " . $var_joins["ba_achternaam"]; ?></td>
    </tr>
    <tr>
        <td class=tekst><? echo $var_joins["fa_straatnaam"] . " " . $var_joins["fa_huisnummer"]; ?></td>
        <td class=tekst><? echo $var_joins["ba_straatnaam"] . " " . $var_joins["ba_huisnummer"]; ?></td>
    </tr>
    <tr>
        <td class=tekst><? echo $var_joins["fa_postcode_postbus"] . " " . $var_joins["fa_woonplaats"]; ?></td>
        <td class=tekst><? echo $var_joins["ba_postcode_postbus"] . " " . $var_joins["ba_woonplaats"]; ?></td>
    </tr>
    <tr>
        <td class=tekst><? echo $var_joins["fa_land"]; ?></td>
        <td class=tekst><? echo $var_joins["ba_land"]; ?></td>
    </tr>
    <tr>
        <td colspan=2 class=tekst>&nbsp;</td>
    </tr>
    <tr>
        <td colspan=2 class=tekst><b>E-mail:</b> <u><? echo $var_joins["email"]; ?></u></b></td>
    </tr>
    </table>

    <p class=boldheader>Deze klant heeft de volgende artikelen besteld:<p>

    <table border=1 width=470 cellspacing=0 cellpadding=0>
    <tr>
        <td width=260 class=header colspan=2>Artikel naam:<p></td>
        <td width=50 class=header>Aantal:<p></td>
        <td width=65 align=right class=header>Prijs:<p></td>
        <td width=65 align=right class=header>Totaal:<p></td>
    </tr>
    <tr>
        <td width=40 class=tekst>[img]../images/cadeautje.gif[/img]</td>
        <td width=260 valign=top class=tekst>Gratis Cadeautje!<br><font class=smallgraytekst>Voeg dit cadeautje gratis toe aan de bestelling!</font></td>
        <td width=50 valign=top align=right class=tekst>1<p></td>
        <td width=65 valign=top align=right class=tekst>Gratis<p></td>
        <td width=65 valign=top align=right class=tekst>Gratis<p></td>
    </tr>
<?

    while ($var_artikelen = mysql_fetch_array($query_joins)) {
        $query_producten = mysql_query ("SELECT
                                          *
                                      FROM
                                          producten
                                     WHERE
                                          id = '" . $var_artikelen["product_id"] . "'") or report_mysql_error ("SELECT * FROM producten - order/overzicht.php");

        $var_producten = mysql_fetch_array($query_producten);

    $totaal_prijs = $var_producten["prijs"] * $var_artikelen["aantal"];

    $lengte = "";

    if ($var_producten["lengte"] and $var_producten["doorsnede"])
        $lengte = "Lengte " . $var_producten["lengte"] . " cm, doorsnede " . $var_producten["doorsnede"] . " cm.";

    if (!$var_producten["lengte"] and $var_producten["doorsnede"])
        $lengte = "Doorsnede " . $var_producten["doorsnede"] . " cm.";

?>
    <tr>
        <td class=tekst width=40><a href=../../detail.php?id=<? echo $var_producten["id"]; ?>>[img]../images/producten/<?[/img] alt="<? echo $var_producten["product_naam"]; ?>" border=0 width=40 height=40></a></td>
        <td width=260 valign=top><a href=../../detail.php?id=<? echo $var_producten["id"]; ?> class=tekst><? echo $var_producten["product_naam"]; ?><br><font class=smallgraytekst><? echo $lengte . $var_producten["regelbaar"] . $var_producten["batterijen"]; ?></font></a></td>
        <td class=tekst align=right valign=top><? echo $var_artikelen["aantal"]; ?></td>
        <td class=tekst align=right valign=top>€ <? printf ("%01.2f", $var_producten["prijs"]); ?></a></td>
        <td class=tekst align=right valign=top>€ <? printf ("%01.2f", $totaal_prijs); ?></a></td>
    </tr>
<?
    }
}

[ Voor 34% gewijzigd door Verwijderd op 13-11-2003 18:25 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Ik snap je topicstart niet echt geloof ik, maar ik beantwoord de vraag van je topictitel maar even:
[php / MySQL]While op de zelfde query / pointer terug zetten
Dat gaat niet, tenzij je met mysql-result werkt.

Ik zou er echter voor kiezen om de waarden eerst in een array binnen te halen en vervolgens daarmee te werken.

[ Voor 3% gewijzigd door drm op 13-11-2003 18:39 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Waarom niet zoiets als:
PHP:
1
2
3
4
5
6
7
8
9
10
$query = "select bla from bla";
$result = mysql_query($query);
$first_use_result = $result;
while ($first_use_result)
{
}
$second_use_result = $result;
while ($second_use_result)
{
}

Als ik je tenminste goed begrijp...

Ook Knor is aangestoken met het ligfietsvirus!


  • mr.inno
  • Registratie: April 2003
  • Laatst online: 14-09 18:19
yip of eerst ff snel in een arraytje zetten en dan die array twee keer doorlopen..

inno


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

drm schreef op 13 november 2003 @ 18:38:
Dat gaat niet, tenzij je met mysql-result werkt.
Get your facts straight :)
Ik zou er echter voor kiezen om de waarden eerst in een array binnen te halen en vervolgens daarmee te werken.
Dat idd wel, meerdere keren de conversie van een mysql-result naar een php-waarde doen kost wat overhead en is potentieel een probleem veroorzaker.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

die kende ik idd niet :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1