Hoe optellen met MySql Select opties en waardes?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

J L

J L

02/05/2012 21:15:36
Quote Anchor link
Graag zou ik op het einde van de pagina een vak willen maken waarin het totaal berekend wordt voor $opties. Het gaat mij er dus om dat wanneer er wordt gekozen voor een optie bij nummer1 dat het getal bij het vak met het totaal aan het einde van de pagina veranderd. Dat vak met het totaal moet dus blijven veranderen hoe verder je in het formulier dingen veranderd.

Hoe zou ik dat het beste en makkelijkste aan kunnen pakken?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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

<tr>
<td><b>Nummer 1:</b></td>
<td>
<select name="nummer1">
<?php
$query
= mysql_query("SELECT `stelling`, `opties` FROM `test1` WHERE `type` = 'nummer1' ORDER BY `id` ASC");
while($row = mysql_fetch_object($query)){
{

$opties = number_format($row->opties, 2, ',', '.');
}

echo "<option value=\"$row->stelling\">$row->stelling $opties</option>";
}

?>

</select>
</td>
</tr>


<tr>
<td><b>Nummer 2:</b></td>
<td>
<select name="nummer2">
<?php
$query
= mysql_query("SELECT `stelling`, `opties` FROM `test2` WHERE `type` = 'nummer2' ORDER BY `id` ASC");
while($row = mysql_fetch_object($query)){
{

$opties = number_format($row->opties, 2, ',', '.');
}

echo "<option value=\"$row->stelling\">$row->stelling $opties</option>";
}

?>

</select>
</td>
</tr>
Gewijzigd op 02/05/2012 21:24:22 door J L
 
PHP hulp

PHP hulp

25/11/2024 00:24:53
 
Noppes Homeland

Noppes Homeland

02/05/2012 21:22:23
Quote Anchor link
Wel je aanpak is totaal verkeert, dus bedenk eens hoe het anders zou kunnen, met 1 query.
Gewijzigd op 02/05/2012 21:23:27 door Noppes Homeland
 
J L

J L

02/05/2012 21:26:25
Quote Anchor link
Het script werkt prima. Op de volgende pagina, dus als je alle opties gekozen hebt en klikt op doorgaan, rekent die het allemaal prima uit. Maar ik wil dus op de 1e pagina waar je alles kiest al een totaal vak hebben zodat men als voorbeeld kan zien wat het totaal vak weergeeft.
Gewijzigd op 02/05/2012 21:27:21 door J L
 
Obelix Idefix

Obelix Idefix

02/05/2012 21:27:02
Quote Anchor link
Wil je totalen obv de select of obv wat iemand aangeeft in het formulier?
In dat laatste geval zou je volgens mij eens naar javascript kunnen kijken.

Beste is niet per definitie het gemakkelijkst:
zoals je nu je script hebt lijkt het voor jou misschien makkelijk, maar niet het beste

Wat je script betreft:
Hoeveel nummers ga je aanmaken? en dan voor elke een aparte query?
backtics beter niet te gebruiken in je query. test1, test2, lijken me geen goede tabelnamen (alleen al vanwege de nummering).
Waar is je foutafhandeling?
PHP (echo) ' gebruiken, in HTML " --> scheelt je al die \ (en maakt het compacter, beter leesbaar en minder kans op fouten).

Toevoeging op 02/05/2012 21:27:30:

J L op 02/05/2012 21:26:25:
Het script werkt prima.

En daarom is het goed?!?
 
J L

J L

02/05/2012 21:35:10
Quote Anchor link
Ik wil dat het totaal aan het einde van de pagina veranderd wanneer je iets kiest bij nummer 1 en daarna dat het totaal veranderd als je weer iets kiest bij nummer 2 en ga maar zo door.

Het is alleen ter informatie om het totaal vak te laten zien. Het is dus niet van belang om het zo fantastisch mogelijk te doen. Het liefst de makkelijkste manier.

Via Javascript zou het misschien met onChange kunnen, maar heb geen idee hoe ik dat aan zou moeten pakken. Het liefst met PHP.

Toevoeging op 02/05/2012 21:37:21:

Obelix en Idefix op 02/05/2012 21:27:02:
Wat je script betreft:
Hoeveel nummers ga je aanmaken? en dan voor elke een aparte query?
backtics beter niet te gebruiken in je query. test1, test2, lijken me geen goede tabelnamen (alleen al vanwege de nummering).
Waar is je foutafhandeling?


Het bestaat al uit 8 nummers. Test1 en 2 zijn zoals de namen het al vermoeden test namen.

De fouthandeling heb ik hier niet gepost, want daar heb ik geen vragen over.
 
Noppes Homeland

Noppes Homeland

02/05/2012 21:39:48
Quote Anchor link
De makkelijkste manier is: 1 query en een fatsoenlijk stukje code!
 
J L

J L

02/05/2012 21:41:12
Quote Anchor link
Noppes Homeland op 02/05/2012 21:39:48:
De makkelijkste manier is: 1 query en een fatsoenlijk stukje code!


Je ziet hier maar een miniem gedeelte van de gehele code.

En nee 1 query is niet mogelijk.
Gewijzigd op 02/05/2012 21:42:54 door J L
 
Noppes Homeland

Noppes Homeland

02/05/2012 21:47:28
Quote Anchor link
1 query is wel mogelijk, alleen jouw blikveld is zodanig dat je dat niet ziet.

Wat jij wilt is ongeveer 15 net gecodeerde regels... daar ligt voor jouw de uitdaging.
 
Erwin H

Erwin H

02/05/2012 21:47:42
Quote Anchor link
Eigenwijs....
Als je niet alle relevante code laat zien, krijg je ook nooit een relevant antwoord.
 
J L

J L

02/05/2012 22:00:36
Quote Anchor link
Noppes Homeland op 02/05/2012 21:47:28:
1 query is wel mogelijk, alleen jouw blikveld is zodanig dat je dat niet ziet.

Wat jij wilt is ongeveer 15 net gecodeerde regels... daar ligt voor jouw de uitdaging.


Je kent de 99,99% van de rest van het script niet. Probeer eens in te gaan op de content in plaats van bijzaken waarover ik mijzelf niet ga verantwoorden en tijd ga verspillen om externe punten uit te leggen terwijl mijn vraag daar totaal niet om draait.
Gewijzigd op 02/05/2012 22:01:12 door J L
 
Noppes Homeland

Noppes Homeland

03/05/2012 18:40:26
Quote Anchor link
Quote:
Je kent de 99,99% van de rest van het script niet.

Dat hoeft ook niet, want hetgeen je gepost hebt is al herhalende code... wat terug gebracht kan worden naar 1 derde van het aantal regels wat je gepost hebt.

Wees dus niet zo eigenwijs, verruim je blikveld en probeer het eens met 1 query.

Voor de rest is er al geoppert dat je een poging kan doen om het client site met javascript op te lossen, maar je dient wel in je achterhoofd te hebben dat dat nu net uit kan staan.
 
Obelix Idefix

Obelix Idefix

03/05/2012 19:20:27
Quote Anchor link
J L op 02/05/2012 21:35:10:
Het bestaat al uit 8 nummers. Test1 en 2 zijn zoals de namen het al vermoeden test namen.

En als het straks 7 of 9 wordt? Ga je dan alle code nalopen aanpassen?
Waarom in code met testnamen gaan werken? Ga je straks het hele script herschrijven met 'echte' namen?

Noppes is niet altijd even vriendelijk in zijn woordkeuze, maar ook ik heb het idee dat je onnodig veel code gebruikt en niet flexibel bent als er iets zou wijzigen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.