Meerdere keren in DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

06/08/2006 10:36:00
Quote Anchor link
Hallo,

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)
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
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>"
;
     }
}
    

?>


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
 
PHP hulp

PHP hulp

17/11/2024 17:39:34
 
Jan Koehoorn

Jan Koehoorn

06/08/2006 11:10:00
Quote Anchor link
Zet eens helemaal bovenaan je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        echo '<pre>';
        print_r ($_POST);
        echo '</pre>';
    }

?>

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.
 

06/08/2006 11:16:00
Quote Anchor link
Ik ben inderdaad vergeten om de superglobals toe te passen, maar dit wist ik. Dit heb ik gekregen toen ik uw script boven aan mijn pagina zette:

Quote:
Array
(
[geselecteerd] => Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
)

[verstuur] => Gooi in de winkelwagen!
)
 



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.