rijen deleten
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
while ($posities['opbrengst'] > 15) {
$teveel=$posities['opbrengst']-15;
$inv4=mysql_query("DELETE FROM posities");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal");
}
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'];
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
while ($posities['opbrengst'] > 15) {
$teveel=$posities['opbrengst']-15;
$inv4=mysql_query("DELETE FROM posities");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal");
}
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'];
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Dit is je query.
$inv4=mysql_query("DELETE FROM posities");
DELETE 'wat' FROM posities? Hij moet natuurlijk wel weten wat je wilt weggooien uit de posities table.
Gewijzigd op 03/08/2012 10:54:52 door Chris PHP
Je hebt helemaal geen WHERE in je DELETE query.
Code (php)
1
2
3
2
3
<?php
$inv4=mysql_query("DELETE FROM posities WHERE '".$posities['opbrengst']."' > 15");
?>
$inv4=mysql_query("DELETE FROM posities WHERE '".$posities['opbrengst']."' > 15");
?>
Test het zou ik zeggen :-D, van voorkauwen leer je niets.
Dan heb ik dit geprobeerd, maar dit werkt ook niet, wat is hier fout aan:
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
$teveel=$posities['opbrengst']-15;
$inv4=mysql_query("DELETE FROM posities WHERE ('".$posities['opbrengst']."' > 15)");
$inv5=mysql_query("UPDATE geld SET saldo = ($teveel + saldo)");
$inv6=mysql_query("UPDATE geld SET totaal = ($teveel + totaal)");
}
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'];
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
$teveel=$posities['opbrengst']-15;
$inv4=mysql_query("DELETE FROM posities WHERE ('".$posities['opbrengst']."' > 15)");
$inv5=mysql_query("UPDATE geld SET saldo = ($teveel + saldo)");
$inv6=mysql_query("UPDATE geld SET totaal = ($teveel + totaal)");
}
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'];
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Gewijzigd op 03/08/2012 11:10:38 door Louis Deconinck
Waarom staat je posities >15 tussen ()?
Voorbeeld, als alles 0.0000 bevat en ik voer 16.0000 dan krijg ik als saldo '1.0000' en totaal '1.0000' en bij de opbrengst van de positie '16.0000'.
Wat gaat er fout:
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
$teveel=$posities['opbrengst']-15;
$inv4=mysql_query("DELETE FROM posities WHERE '".$posities['opbrengst']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal");
}
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'];
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
$teveel=$posities['opbrengst']-15;
$inv4=mysql_query("DELETE FROM posities WHERE '".$posities['opbrengst']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal");
}
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'];
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Alvast bedankt
Maar in je where staat dan iets als:
WHERE 10 > 15
Maak er eens van:
Toevoeging op 03/08/2012 11:49:33:
"Voorbeeld, als alles 0.0000 bevat en ik voer 16.0000 dan krijg ik als saldo '1.0000' en totaal '1.0000' en bij de opbrengst van de positie '16.0000'."
dat snap ik niet helemaal...
$teveel=$posities['opbrengst']-15;
Als je daar dus 16 invult, wordt er 15 vanaf getrokken en kom je op 1 uit! Dus als je daar 17 invult zal er 2 uitkomen.
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=$posities['opbrengst']+$_POST['inkpos']-15;
$wopbrengst=$posities['opbrengst']+$_POST['inkpos']-$teveel;
$topbrengst=$wopbrengst+$topbrengst;
$inv4=mysql_query("DELETE FROM posities WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $wopbrengst + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $wopbrengst + totaal");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=$posities['opbrengst']+$_POST['inkpos']-15;
$wopbrengst=$posities['opbrengst']+$_POST['inkpos']-$teveel;
$topbrengst=$wopbrengst+$topbrengst;
$inv4=mysql_query("DELETE FROM posities WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $wopbrengst + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $wopbrengst + totaal");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Daarnaast kan je die updates ook nog eens in minder queries doen:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$inv5=mysql_query("UPDATE geld SET saldo = $wopbrengst + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $wopbrengst + totaal");
//wordt in 1 query:
$inv5=mysql_query("UPDATE geld
SET saldo = ".$wopbrengst." + saldo,
totaal = ".$wopbrengst." + totaal");
?>
$inv5=mysql_query("UPDATE geld SET saldo = $wopbrengst + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $wopbrengst + totaal");
//wordt in 1 query:
$inv5=mysql_query("UPDATE geld
SET saldo = ".$wopbrengst." + saldo,
totaal = ".$wopbrengst." + totaal");
?>
Hetzelfde voor de tweede set aan update queries.
Bedenk dat het uitvoeren van queries over het algemeen de meeste tijd kost. Hoe minder queries hoe beter dus (als vuistregel).
Toevoeging op 03/08/2012 13:08:42:
Daarnaast zie ik je ook een keer "SELECT * FROM posities", terwijl je alleen het aantal rijen nodig hebt. Daar is een veel betere query voor:
SELECT COUNT(*) AS totaal FROM posities
Met die query krijg je een rij terug, met 1 kolom genaamd 'totaal'. Als je die uitleest weet je het aantal rijen in je totale tabel. Veel sneller en efficienter.
Gewijzigd op 03/08/2012 13:11:14 door Erwin H
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=15-$posities['opbrengst'];
$topbrengst=$teveel+$topbrengst;
$inv4=mysql_query("DELETE FROM posities");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=15-$posities['opbrengst'];
$topbrengst=$teveel+$topbrengst;
$inv4=mysql_query("DELETE FROM posities");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Toevoeging op 03/08/2012 13:19:31:
Mijn fout er moet wel overal een where anders delete hij ze allemaal
Foutafhandeling ontbreekt en SQL-Injection is mogelijk.
Wat ik dus wil:
Ik wil dus dat hij in de while loopt alle posities die er zijn 1 voor 1 overloopt, vervolgens filtert hij daar alle posities uit die deze beurt een opbrengst zouden hebben van meer dan €15. Dan neemt hij de huidige opbrengst van deze positie en trekt dit af van 15, dit is dan het bedrag dat de positie zou moeten verdienen om tot aan 15 te komen. Daarna delete hij de positie, daarna moet hij het bedrag dat de posite tot de €15 bracht bij het saldo optellen. Verder moet hij ook nog eens bijhouden in $topbrengst hoeveel tijdens deze uitbetaling op deze manier werd verdient.
Daarna moet hij van alle posities die deze beurt nog geen €15 bereiken het ingegeven bedrag bij de opbregnst laten optellen
en als laatste moet hij dan ook nog eens weergegeven hoeveel er tijdens deze beurt in totaal is verdient.
Voorbeeld van hoe het moet: Een persoon beschikt over een saldo van €0 en 3 posities met een opbrengst van €0. Ik geef €10 in, dus alle posities van deze persoon verdienen €10 -> De persoon heeft een saldo van €30, verder heeft hij ook nog 3 posities met een opbrengst van elk €10 -> De persoon koopt met zijn saldo 3 nieuwe posities (een positie kost €10)-> De persoon heeft een saldo van €0, verder heeft hij nog 3 posities met elk een opbrengst van €10 en nog eens 3 posities met elk een opbrengst van €0 -> Ik geef nogmaals €10, dus alle posities van deze persoon verdienen €10, er is echter een uitzondering, aangezien zijn 3 eerste posities dan een opbrengst zouden hebben van €20 terwijl de maximale opbregnst €15, dus berekenen we hoeveel de posities tekort komen om €15 aan opbrengst te hebben, in ons geval is dit dus €5, dus de 3 posities worden verwijderd en de persoon heeft nu een saldo van €15, dit is echter nog niet alles want hij heeft ook nog eens 3 andere posities die elk €10 opbrengen -> Eindstand: saldo:€45 posities: 3 met een opbrengst van elk €10.
Hoe krijg ik dit voor elkaar?
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=15-$posities['opbrengst'];
$topbrengst=$teveel+$topbrengst;
$inv4=mysql_query("DELETE FROM posities WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal WHERE opbrengst + '".$_POST['inkpos']."' > 15");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
echo $whilecount.'<br>';
echo $topbrengst.'<br>';
echo $aantalposities.'<br>';
echo $teveel;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=15-$posities['opbrengst'];
$topbrengst=$teveel+$topbrengst;
$inv4=mysql_query("DELETE FROM posities WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal WHERE opbrengst + '".$_POST['inkpos']."' > 15");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
echo $whilecount.'<br>';
echo $topbrengst.'<br>';
echo $aantalposities.'<br>';
echo $teveel;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Gewijzigd op 03/08/2012 13:36:17 door Louis Deconinck
Maar helaas, van je uitleg begrijp ik echt helemaal niets.... probeer het dus nog eens, misschien dat ik je dan kan helpen.
Mensen die zich registreren op de website krijgen een saldo (in €) met dit saldo kunnen ze posities ter waarde van €10 aanschaffen. We gaan er dus vanuit dat de persoon start met een saldo van €30
1. saldo = €30 posities = 0
Met deze €30 koopt hij dus 3 posities
2. saldo = €0 posities = 3
elke positie heeft echter ook een eigen opbrengst. dus telkens wanneer de positie geld genereert gaat de opbengst omhoog, deze opbrengst kan echter maximaal €15 zijn.
3. saldo = €0 posities = 3 (met elk €0 opbrengst)
Goed nu is er ook een admin gedeelte (de code gaat over deze pagina), waarbij ik dus kan bepalen hoeveel geld de posities genereren. Dus in ons voorbeeld zeg ik dat alle posities die bestaan €10 genereren, dit verhoogt het saldo van de persoon dus ook, in ons geval heeft de persoon dus 3 posities dus 3x€10 = €30. Maar dit verhoogt ook de opbrengst van de posities, dus alle posities hebben nu een opbrengst van €10.
4. saldo = €30 posities = 3 (met elke €10 opbrengst)
Nu besluit de persoon om met zijn saldo (€30) daar weer nieuwe posities mee te kopen, 1 positie kost €10 dus de persoon kan 3 nieuwe posities kopen, deze nieuwe posities hebben elk een opbrengst van €0
5. saldo = €0 posities = 6 (3 oude met elk €10 opbrengst en 3 nieuwe met elk €0 opbrengst)
Dus de volgende dag ga ik opnieuw naar het admingedeelte en besluit dat elke positie vandaag weer €10 zal verdienen. Echter de 3 oude posities hebben reeds een opbrengst van €10, dus daar zou dan nogmaals €10 bijkomen, wat dus een totale opbrengst geeft van €20, dit is echter niet toegestaan want de totale opbrengst van een positie mag maximaal €15 zijn. Dus we berekenen op hoeveel geld de positie nog recht heeft. €15 (maximale opbrengst) - €10 (het geld dat de posities deze beurt genereren) = €5. Dus deze 3 posities hebben elk nog recht op €5, wat een totaal maakt van €15. Dus we schrijven €15 bij bij het saldo en we verwijderen de 3 oude posities aangezien deze toch hun maximale opbrengst hebben bereikt. Dan hebben we ook nog de 3 nieuwe posities, aangezien deze nog niet aan hun maximale opbrengst zitten, verdienen deze elk €10 en hebben nu dus ook een opbrengst van €10, wat dus een totaal maakt van €30. Dus €15 (opbrengsten oude posities) + €30 (opbrengsten nieuwe posities) = €45 (het nieuwe saldo).
6. saldo = €45 posities = 3 (met elk een opbrengst van €10)
Hoe krijg ik dit voor elkaar? de fout zit hem in het admin gedeelte:
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
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
<?php
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=15-$posities['opbrengst'];
$topbrengst=$teveel+$topbrengst;
$inv4=mysql_query("DELETE FROM posities WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal WHERE opbrengst + '".$_POST['inkpos']."' > 15");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
echo $whilecount.'<br>';
echo $topbrengst.'<br>';
echo $aantalposities.'<br>';
echo $teveel;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
session_start();
include("header.php");
if (!isset($_SESSION['admin'])) {
output("Je moet ingelogd zijn om deze pagina te kunnen bekijken");
}
else {
if (isset($_POST['bevestig'])) {
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$posities = mysql_fetch_assoc($posities_get);
$whilecount = 0;
$topbrengst=0;
while ($whilecount < mysql_num_rows($posities_get)) {
$whilecount=$whilecount+1;
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
$teveel=15-$posities['opbrengst'];
$topbrengst=$teveel+$topbrengst;
$inv4=mysql_query("DELETE FROM posities WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv5=mysql_query("UPDATE geld SET saldo = $teveel + saldo WHERE opbrengst + '".$_POST['inkpos']."' > 15");
$inv6=mysql_query("UPDATE geld SET totaal = $teveel + totaal WHERE opbrengst + '".$_POST['inkpos']."' > 15");
}
}
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
$aantalposities=mysql_num_rows($posities_get);
$inv1=mysql_query("UPDATE posities SET opbrengst = '".$_POST['inkpos']."' + opbrengst");
$inv2=mysql_query("UPDATE geld SET saldo = ($aantalposities * '".$_POST['inkpos']."') + saldo");
$inv3=mysql_query("UPDATE geld SET totaal = ($aantalposities * '".$_POST['inkpos']."') + totaal");
$totaalbetaald = mysql_num_rows($posities_get) * $_POST['inkpos'] + $topbrengst;
echo $whilecount.'<br>';
echo $topbrengst.'<br>';
echo $aantalposities.'<br>';
echo $teveel;
output("Elke positie heeft €".$_POST['inkpos']." verdiend, dat is dus een totaal van €$totaalbetaald.");
}
?>
<form action="" method="post">
Inkomsten per positie: €<input type="text" name="inkpos" />
<input type="submit" value="Bevestig" name="bevestig" />
</form>
<?php
}
include("footer.php");
?>
Gewijzigd op 03/08/2012 14:37:58 door Louis Deconinck
1) Je zegt dat het gaat over gebruikers die posities kopen. Dat betekent volgens mij dat in je tabel 'posities' je ook nog rekening moet houden met elke gebruiker. Het saldo dat je berekent moet je dus wel uitsplitsen over de verschillende gebruikers. Het kan niet allemaal 1-2-3 bij elkaar worden opgeteld.
2) Ik begrijp niet waarom je direct de posities wilt deleten die aan het maximum zitten. Is dat niet aan de gebruiker om die weg te gooien c.q. te verkopen?
Er is dan ook nog een apparte tabel 'posities' daarin zit 'id, 'opbrengst' en 'gebrid'. Doormiddel van 'gebrid' weet ik van wie de positie is, want 'gebrid' stemt overeen met de id van de gebruiker.
2) Deze posites doen niets meer, je kan ze niet verkopen (ze zijn niets waard) en ze leveren ook geen geld meer op (ze hebben hun maximale opbrengst bereikt), dus gewoon om de database wat mooi te houden verwijder ik ze, waarom moet ik de gebruiker met extra werk opzadelen, als ik de posities automatisch kan laten verwijderen.
Gewijzigd op 03/08/2012 15:04:07 door Louis Deconinck
Je zegt dat je alle rijen in de while wilt behandelen. Misschien zie ik iets over hoofd maar volgens mij behandel je alleen de eerste rij. Volgens mij moet de while ongeveer zo:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$posities_get = mysql_query("SELECT * FROM posities") or die(mysql_error());
while ($posities = mysql_fetch_assoc($posities_get)) {
// behandel hier een rij, bijv.
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
//enz.
}
}
while ($posities = mysql_fetch_assoc($posities_get)) {
// behandel hier een rij, bijv.
if ($posities['opbrengst'] + $_POST['inkpos'] > 15) {
//enz.
}
}
Dus geen gedoe met $whilecount.
(Wat voor tag moet ik trouwens gebruiken voor een code blok? ik doe "code" tussen blokhaken, maar ik krijg geen gekleurde syntax.)
Gewijzigd op 03/08/2012 15:38:54 door Ivo Breeden
Bedankt Ivo, dat ga ik even proberen, voor een gekleurde syntax met je php tags gebruiken in je code.