Meerdere keren in DB
Ik kom hier best vaak, maar ik heb me sinds vandaag aangemeld, omdat ik een vraag heb. Ik heb een script (die je straks ziet, ik heb 'm omgebouwd omdat waarschijnlijk 't onderwerp jullie niet aanspreekt en omdat andere sites ('k geloof 't niet maar je weet maar nooit) 't systeem kunnen overnemen.
Het zit zo: Je selecteert een aantal artikelen die in de winkelwagen worden "gegooid". Die artikelen hebben allemaal een randomwaarde uit de database gekregen. Door die randomwaardes bij elkaar op te tellen (ligt eraan hoeveel producten je hebt geselecteerd) krijg je een random gebeurtenis, waarbij iets ín de database wordt gezet, of juist ergens af (geld) wordt gehaald. Maar dit gebeurt zo vaak als dat je artikelen kunt selecteren! Volgens mij komt 't omdat die querys in een for-loop staan, maar ik zou niet weten hoe ik die eruit moet krijgen.
Dit is de code:
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
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
<?PHP
include("config.php");
$winkel = "$naampje";
$winkel_id = "1";
echo "<font color='#F19E02' size='4'><B>$naampje</B></font><P>";
if($_COOKIE[login] == "")
{ echo "Je bent niet ingelogd."; }
else
{
//CONTROLE
if($verstuur)
{
$random_waarde = 0;
for($nr=0; $geselecteerd[$nr] != NULL; $nr++)
{ if($ing[$nr] != ""){
$sql7 = mysql_query("SELECT geld FROM users WHERE id='$_COOKIE[potterplanet_login]'");
$list7 = mysql_fetch_object($sql7);
$sql6 = mysql_query("SELECT product_id FROM users_spullen WHERE id='$ing[$nr]'");
$list6 = mysql_fetch_object($sql6);
$sql5 = mysql_query("SELECT randomwaarde FROM winkels_artikelen WHERE id='$list6->product_id'");
$list5 = mysql_fetch_object($sql5);
$random_waarde = $random_waarde + $list5->randomwaarde;
$nieuw_bedrag = $list7->geld - 4930;
$sql8 = mysql_query("SELECT id FROM lessen_temakenspullen");
$list8 = mysql_num_rows($sql8);
$random_product = rand(1,$list8);
$sql9 = mysql_query("SELECT naam FROM lessen_temakenspullen WHERE id='$random_product'");
$list9 = mysql_fetch_object($sql9);
$query_delete = "DELETE FROM users_spullen WHERE id='$ing[$nr]'";
$query_boete = "UPDATE users SET geld='$nieuw_bedrag' WHERE id='$_COOKIE[login]'";
$query_win = "INSERT INTO users_kochtespullen (user_id, product_id, vak) VALUES ('$_COOKIE[login]', '$random_product', '$winkel_id')";
}}
for($nr=0; $geselecteerd[$nr] != NULL; $nr++)
{
if($random_waarde == "3")
{ $message = "BOEM!!!! Je winkelwagen crasht! Je bent al je spullen kwijt."; mysql_query($query_delete); }
//Zo kunnen er meer random gebeurtenissen komen.
}
echo "$message";
}
else {
echo "
<form method='POST'>
<table border='1' width='80%' cellspacing='3' cellpadding='3' bordercolor='#777777' style='border-collapse: collapse;'>
<tr>
<td width='60%' bgcolor='#F19E02'><B><center>Winkel</B></td>
<td width='40%' bgcolor='#F19E02'><center><B>Jouw spullen</B></td>
</tr>
<tr>
<td width='60%' valign='top' bgcolor='#8A8A8A'><center><BR>
Winkelmandje-omschrijving
</td>
<td width='40%' bgcolor='#8A8A8A'><center><br>";
$sql5 = mysql_query("SELECT id, product_id,COUNT(*) FROM users_spullen WHERE user_id='$_COOKIE[login]' AND vak='$vak_id' GROUP BY product_id");
$aantal5 = mysql_num_rows($sql5);
if($aantal5 <= "2"){ echo "<font size='1'><I>Je hebt minimaal 3 verschillende spullen nodig..</i></font>"; }
else {
echo "<table border='0'>";
$nr=0;
while($list5 = mysql_fetch_object($sql5))
{
$sql2 = mysql_query("SELECT id, naam, randomwaarde FROM winkels_artikelen WHERE id='$list5->product_id' AND vak='$vak_id'") or die ("MySQL-fout: ".mysql_error());
$list2 = mysql_fetch_object($sql2);
$sql3 = mysql_query("SELECT id FROM users_spullen WHERE product_id='$list2->id' AND user_id='$_COOKIE[login]'") or die ("MySQL-fout: ".mysql_error());
$aantal3 = mysql_num_rows($sql3);
echo "<input type='hidden' name='geselecteerd[$nr]' value='1'>
</td>
<td> <input type='checkbox' name='ing[$nr]' value='$list5->id'> $list2->naam <font size='1'>(".$aantal3."x)</font></td></tr>";
$nr++;
}
echo " </table><br>
<input type='submit' name='verstuur' value='Gooi in je winkelwagen!' $input>"; }
echo "
</td>
</tr>
</table>";
}
}
?>
include("config.php");
$winkel = "$naampje";
$winkel_id = "1";
echo "<font color='#F19E02' size='4'><B>$naampje</B></font><P>";
if($_COOKIE[login] == "")
{ echo "Je bent niet ingelogd."; }
else
{
//CONTROLE
if($verstuur)
{
$random_waarde = 0;
for($nr=0; $geselecteerd[$nr] != NULL; $nr++)
{ if($ing[$nr] != ""){
$sql7 = mysql_query("SELECT geld FROM users WHERE id='$_COOKIE[potterplanet_login]'");
$list7 = mysql_fetch_object($sql7);
$sql6 = mysql_query("SELECT product_id FROM users_spullen WHERE id='$ing[$nr]'");
$list6 = mysql_fetch_object($sql6);
$sql5 = mysql_query("SELECT randomwaarde FROM winkels_artikelen WHERE id='$list6->product_id'");
$list5 = mysql_fetch_object($sql5);
$random_waarde = $random_waarde + $list5->randomwaarde;
$nieuw_bedrag = $list7->geld - 4930;
$sql8 = mysql_query("SELECT id FROM lessen_temakenspullen");
$list8 = mysql_num_rows($sql8);
$random_product = rand(1,$list8);
$sql9 = mysql_query("SELECT naam FROM lessen_temakenspullen WHERE id='$random_product'");
$list9 = mysql_fetch_object($sql9);
$query_delete = "DELETE FROM users_spullen WHERE id='$ing[$nr]'";
$query_boete = "UPDATE users SET geld='$nieuw_bedrag' WHERE id='$_COOKIE[login]'";
$query_win = "INSERT INTO users_kochtespullen (user_id, product_id, vak) VALUES ('$_COOKIE[login]', '$random_product', '$winkel_id')";
}}
for($nr=0; $geselecteerd[$nr] != NULL; $nr++)
{
if($random_waarde == "3")
{ $message = "BOEM!!!! Je winkelwagen crasht! Je bent al je spullen kwijt."; mysql_query($query_delete); }
//Zo kunnen er meer random gebeurtenissen komen.
}
echo "$message";
}
else {
echo "
<form method='POST'>
<table border='1' width='80%' cellspacing='3' cellpadding='3' bordercolor='#777777' style='border-collapse: collapse;'>
<tr>
<td width='60%' bgcolor='#F19E02'><B><center>Winkel</B></td>
<td width='40%' bgcolor='#F19E02'><center><B>Jouw spullen</B></td>
</tr>
<tr>
<td width='60%' valign='top' bgcolor='#8A8A8A'><center><BR>
Winkelmandje-omschrijving
</td>
<td width='40%' bgcolor='#8A8A8A'><center><br>";
$sql5 = mysql_query("SELECT id, product_id,COUNT(*) FROM users_spullen WHERE user_id='$_COOKIE[login]' AND vak='$vak_id' GROUP BY product_id");
$aantal5 = mysql_num_rows($sql5);
if($aantal5 <= "2"){ echo "<font size='1'><I>Je hebt minimaal 3 verschillende spullen nodig..</i></font>"; }
else {
echo "<table border='0'>";
$nr=0;
while($list5 = mysql_fetch_object($sql5))
{
$sql2 = mysql_query("SELECT id, naam, randomwaarde FROM winkels_artikelen WHERE id='$list5->product_id' AND vak='$vak_id'") or die ("MySQL-fout: ".mysql_error());
$list2 = mysql_fetch_object($sql2);
$sql3 = mysql_query("SELECT id FROM users_spullen WHERE product_id='$list2->id' AND user_id='$_COOKIE[login]'") or die ("MySQL-fout: ".mysql_error());
$aantal3 = mysql_num_rows($sql3);
echo "<input type='hidden' name='geselecteerd[$nr]' value='1'>
</td>
<td> <input type='checkbox' name='ing[$nr]' value='$list5->id'> $list2->naam <font size='1'>(".$aantal3."x)</font></td></tr>";
$nr++;
}
echo " </table><br>
<input type='submit' name='verstuur' value='Gooi in je winkelwagen!' $input>"; }
echo "
</td>
</tr>
</table>";
}
}
?>
Nu wil ik graag ook weten hoe je die $ing[$nr] veranderd in (als ik het goed zeg) superglobal, met die $_POST[] eromheen, maar als ik dat hier bij doe krijg ik een error, en aangezien het verplicht is om op onze server die $_POST en $_GET te gebruiken...
Ik hoop dat iemand mij kan helpen,
Groetjes Jaimy
Code (php)
Na verzenden van het formulier krijg je dan een keurige printout van alle elementen van de $_POST array op je scherm en weet je dus precies hoe je ze in je script moet noemen.
Nog een tip: $var wordt $_POST['var'] als je met superglobals gaat werken.
Quote:
Array
(
[geselecteerd] => Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
)
[verstuur] => Gooi in de winkelwagen!
)
(
[geselecteerd] => Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
)
[verstuur] => Gooi in de winkelwagen!
)