Toon posts:

[PHP] Twee keer parsen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Okay, het probleem is nogal ingewikkeld, hopelijk valt het te begrijpen.
Ik heb in mijn URL een (telkens verschillend) aantal variabelen gedefineerd. Soms zijn het er 2, soms wel 10. Al deze variabelen hebben de volgende naam:
$aantalx <--- x is telkens anders, dat is een waarde uit de database, uit de kolom orderID.
Nu wil ik dat hij in de database de waarden van die variabeles zet. Ik ben er bijna, maar eerst moet ik deze variabeles dus maken in het PHP-script. Ik doe dat als volgt:
$blaat='$aantal'.$row[orderID] $row[orderID] is een variabele die steeds veranderd
Nu krijg ik heel mooi de variabeles $aantal1, $aantal2 etc. Maar als ik deze in de database zet, zet hij dat ook in de database! Dus niet de waarde van de variabele $aantal1, maar gewoon het 'woord' $aantal1 zelf.
Op de een of andere manier moet ik zorgen dat hij dat dus nog een keer parst, waardoor $aantal1 de waarde krijgt die ik in de URL heb meegegeven. Iemand een idee hoe?

Hier heb je trouwens de volledige code:
code:
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
<?
require "functions.php";

function updateAantal($orderID) {
$onr=geefOrdernr($orderID);
$db=connectDB();
$q="SELECT * FROM orders, shop WHERE orders.productID=shop.productID AND orders.ordernr=$onr";
$res=queryDB($q,$db);
while ($row=mysql_fetch_assoc($res)) {
$blaat='$aantal'.$row[orderID];
mysql_query ("UPDATE orders SET aantal=\"$blaat\" WHERE orderID=\"$row[orderID]\"");
}
closeDB($db);
}

mysql_connect ('server', 'naam', 'password');

mysql_select_db (database);

updateAantal($orderID);
?>
<HTML>
<BODY>
De gegevens zijn upgedate! Klik <A HREF="<? order.php?oid=$orderID; ?>">hier</A> om terug te gaan naar het overzicht.
<? echo updateAantal($orderID); ?>
</BODY>
</HTML>

Verwijderd

Probeer het eens met ${aantal1}. Het kan zijn dat ie 1 ziet als getal en dat hij het daarom niet ziet als 1 variabele. BTW waarom gebruik je geen arrays ??

  • Grum
  • Registratie: Juni 2001
  • Niet online
$blaat='$aantal'.$row[orderID];

word

$blaat=${'aantal'.$row['orderID']};

brrrrrrrrr enge code ... maar ok ;)

Verwijderd

Topicstarter
Op woensdag 24 oktober 2001 17:26 schreef MisterJava het volgende:
Probeer het eens met ${aantal1}. Het kan zijn dat ie 1 ziet als getal en dat hij het daarom niet ziet als 1 variabele. BTW waarom gebruik je geen arrays ??
Nee, dat doet ie ook niet... en hoe moet ik dat dan doen met arrays? Die aantalx is steeds anders en niet opeenvolgend.

Verwijderd

Topicstarter
Op woensdag 24 oktober 2001 17:30 schreef Grum_ het volgende:
$blaat='$aantal'.$row[orderID];

word

$blaat=${'aantal'.$row['orderID']};

brrrrrrrrr enge code ... maar ok ;)
Hij pakt hem nog steeds niet... nu komt er het woord "aantal" in m'n database te staan :?

Hmm... als ik dat $blaat=${'aantal'.$row['orderID']}; verander in $blaat=${'onzin'.$row['orderID']}; komt er nog steeds het woord AANTAL in de database te staan. Misschien dat ie hem niet eens update ofzo? Kan het komen door dat CLOSEDB?

  • Grum
  • Registratie: Juni 2001
  • Niet online
ach
omdat je het zo brak hebt geindent (of geen php tags heb gebruikt) had ik over het hoofd gezien dat je het in een functie had gedaan

ga es in de manual lezen over scopes :)

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

variabele variabele :)

$var_naam = 'aantal' . $row[orderID];
$blaat= $$var_naam;

Verwijderd

global :?

Grum_ zal wel weer gelijk hebben.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
hey Thijs! Ik heb je code ff wat netter gemaakt: :)
code:
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
<?
    require "functions.php";
    
    function updateAantal($orderID) {
        $onr = geefOrdernr($orderID);
        $db = connectDB();
        $q = "SELECT * FROM orders, shop WHERE orders.productID=shop.productID AND orders.ordernr=$onr";
        $res = queryDB($q,$db);
        while ($row = mysql_fetch_assoc($res)) {
            $blaat = '$aantal'.$row[orderID];
            mysql_query("UPDATE orders SET aantal = '$blaat' WHERE orderID = '$row[orderID]'");
        }
        closeDB($db);
    }
    
    mysql_connect ('server', 'naam', 'password');
    
    mysql_select_db (database);
    
    updateAantal($orderID);
?>
<HTML>
<BODY>
De gegevens zijn upgedate! Klik <A HREF="<? order.php?oid=$orderID; ?>">hier</A> om terug te gaan naar het overzicht.
<? echo updateAantal($orderID); ?>
</BODY>
</HTML>
Op woensdag 24 oktober 2001 17:48 schreef Grum_ het volgende:
ach
omdat je het zo brak hebt geindent (of geen php tags heb gebruikt) had ik over het hoofd gezien dat je het in een functie had gedaan

ga es in de manual lezen over scopes :)
welke variabele zou volgens jou global moeten zijn dan? :s

Verwijderd

Topicstarter
Dank u allen... ik heb het al opgelost. Ik kwam erachter dat ik helemaal geen functie nodig had :) Dus ik kon gewoon die $blaat=${'aantal'.$row[orderID]}; gebruiken :P

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

P -> W
Pagina: 1