Simulatie scriptje?
Dit moet het volgende doen, het budget uitrekenen en de salaris van de leden. Dit werkte prima als je erachter zette 'WHERE memberid = '$memberid''
Maar hoe doe ik dit als ik dit bij iedereen wil doen?
Ik heb nu het volgende en die geeft de volgende error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #7' at line 1
Wie dit snapt, kan diegene mij helpen? Alvast bedankt.:)
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
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
<?
session_start();
error_reporting(E_all);
require("config.php");
$query = mysql_query("SELECT * FROM members");
while($object = mysql_num_rows($query)){
$members = $object->memberid;
echo"$members";
$query = mysql_query("SELECT * FROM sponsors WHERE memberid = '$members'");
$result = mysql_num_rows($query);
$totaal = 0;
while($list = mysql_fetch_assoc($query))
{
$totaal += $list['sponsor'];
}
$query3 = mysql_query("SELECT * FROM members WHERE memberid = '$members'");
$result3 = mysql_num_rows($query);
while($list3 = mysql_fetch_assoc($query3)){
$geld = $list3['geld'];
}
$query2 = mysql_query("SELECT * FROM spelers WHERE playerteam = '$members'");
$result2 = mysql_num_rows($query);
$salaris = 0;
while($list2 = mysql_fetch_assoc($query2))
{
$salaris += $list2['playersalaris'];
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
}
if ($actie == "1"){
$query = "UPDATE members SET geld = '$budget3'";
$query3 = "UPDATE sponsors SET weken = weken -1 WHERE memberid = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}
?>
session_start();
error_reporting(E_all);
require("config.php");
$query = mysql_query("SELECT * FROM members");
while($object = mysql_num_rows($query)){
$members = $object->memberid;
echo"$members";
$query = mysql_query("SELECT * FROM sponsors WHERE memberid = '$members'");
$result = mysql_num_rows($query);
$totaal = 0;
while($list = mysql_fetch_assoc($query))
{
$totaal += $list['sponsor'];
}
$query3 = mysql_query("SELECT * FROM members WHERE memberid = '$members'");
$result3 = mysql_num_rows($query);
while($list3 = mysql_fetch_assoc($query3)){
$geld = $list3['geld'];
}
$query2 = mysql_query("SELECT * FROM spelers WHERE playerteam = '$members'");
$result2 = mysql_num_rows($query);
$salaris = 0;
while($list2 = mysql_fetch_assoc($query2))
{
$salaris += $list2['playersalaris'];
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
}
if ($actie == "1"){
$query = "UPDATE members SET geld = '$budget3'";
$query3 = "UPDATE sponsors SET weken = weken -1 WHERE memberid = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jesse
Niemand een idee?
Gewoon GEEN WHERE gebruiken.
Quote:
Maar je moet toch alles bij de goede member invoeren of niet dan?
Gewijzigd op 01/01/1970 01:00:00 door Jesse
test het en je ziet het..
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #7' at line 1
Quote:
Snap er niks meer van:S
Gewijzigd op 01/01/1970 01:00:00 door Jesse
Je probeert blijkbaar iets met een Resource id te doen.
Nee, kijk maar naar bovenstaand script, ik heb 'WHERE' verwijderd daarbij in mijn script, zoals jullie zeiden, maar nu krijg ik nog steeds dezelfde foutmelding:S En ik heb geen idee wat ze met resource id bedoelen dus misschien dat een van jullie mij tot een oplossing biedt?
Regel 7 t/m 10 is in elk geval hartstikke fout, dat lijkt nergens op. De rest heb ik niet naar gekeken, dat gaat vervolgens namelijk ook helemaal fout.
Nu heb ik de foutmelding niet meer, maar hij UPDATE bij members geld = 0 omdat hij hem niet kan berekenen waarschijnlijk, iemand oplossing?
Hoe ziet jouw script er nu uit?
Reageer eerst maar even op de post van Frank. Als je daar namelijk niks mee doet heeft het verder geen zin om te helpen.
Frank schreef op 03.04.2007 13:25:
Hoe ziet jouw script er nu uit?
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
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
<?
session_start();
error_reporting(E_all);
require("config.php");
$query = mysql_query("SELECT * FROM members");
while($object = mysql_num_rows($query)){
$members = $object->memberid;
echo"$members";
$query = mysql_query("SELECT * FROM sponsors WHERE memberid => 1");
$result = mysql_num_rows($query);
$totaal = 0;
while($list = mysql_fetch_assoc($query))
{
$totaal += $list['sponsor'];
}
$query3 = mysql_query("SELECT * FROM members WHERE memberid = '$members'");
$result3 = mysql_num_rows($query);
while($list3 = mysql_fetch_assoc($query3)){
$geld = $list3['geld'];
}
$query2 = mysql_query("SELECT * FROM competitie_spelers2 WHERE memberid => '1'");
$salaris = 0;
while($list2 = mysql_fetch_assoc($query2))
{
$salaris += $list2['playersalaris'];
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
}
if ($actie == "1"){
$query = "UPDATE members SET geld = '$budget3'";
$query3 = "UPDATE sponsors SET weken = weken -1 WHERE memberid = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}
?>
session_start();
error_reporting(E_all);
require("config.php");
$query = mysql_query("SELECT * FROM members");
while($object = mysql_num_rows($query)){
$members = $object->memberid;
echo"$members";
$query = mysql_query("SELECT * FROM sponsors WHERE memberid => 1");
$result = mysql_num_rows($query);
$totaal = 0;
while($list = mysql_fetch_assoc($query))
{
$totaal += $list['sponsor'];
}
$query3 = mysql_query("SELECT * FROM members WHERE memberid = '$members'");
$result3 = mysql_num_rows($query);
while($list3 = mysql_fetch_assoc($query3)){
$geld = $list3['geld'];
}
$query2 = mysql_query("SELECT * FROM competitie_spelers2 WHERE memberid => '1'");
$salaris = 0;
while($list2 = mysql_fetch_assoc($query2))
{
$salaris += $list2['playersalaris'];
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
}
if ($actie == "1"){
$query = "UPDATE members SET geld = '$budget3'";
$query3 = "UPDATE sponsors SET weken = weken -1 WHERE memberid = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jesse
while($object = mysql_num_rows($query)){
ongeachter het aantal resultaten, mysql_num_rows() levert slechts 1 resultaat op, het aantal records dat is opgehaald. De hele while is dus zinloos, wordt slechts 1x uitgevoerd. De naam $object is slecht gekozen, het is helemaal geen object.
$members = $object->memberid;
Waarom zou $object een object zijn? Met jouw error_reporting(E_ALL) is iets goed mis, dit kan namelijk helemaal niet. Staat display_errors wel aan? Denk het niet.
Ik vermoed dat er nog wel meer misgaat, maar ga eerst maar eens gestructureerd debuggen.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Kun je misschien zeggen hoe ik dat moet doen?
Quote:
EDIT:
Ok bedankt voor de tips, idd zoveel ervaring heb ik er niet mee maar ik wil het wel leren;).
EDIT:
Ok bedankt voor de tips, idd zoveel ervaring heb ik er niet mee maar ik wil het wel leren;).
Gewijzigd op 01/01/1970 01:00:00 door Jesse
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
// rest van je script
?>
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
// rest van je script
?>
Verder stap voor stap de boel uitwerken en niet alles in 1x willen doen. Daar heb je de ervaring gewoon nog niet voor. (aanname gebasseerd op het probleem en het script)
Maar ik heb nu nog een paar fouten waar ik niet van begrijp:
Dit is mijn script NU:
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
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
<?
session_start();
ini_set('display_errors', E_ALL);
error_reporting(E_ALL | E_STRICT);
require("config.php");
if ($actie == "1"){
$query = mysql_query(" SELECT * FROM members");
while($object = mysql_query($query)){
$members = $object->memberid;
echo"$members";
$query = mysql_query(" SELECT * FROM sponsors WHERE memberid => 1");
$result = mysql_query($query);
$totaal = 0;
while($list = mysql_query($query))
{
$totaal += $list['sponsor'];
}
$query3 = mysql_query(" SELECT * FROM members WHERE memberid = '$members'");
$result3 = mysql_query($query);
while($list3 = mysql_fetch_assoc($query3)){
$geld = $list3['geld'];
}
$query2 = mysql_query(" SELECT * FROM competitie_spelers2 WHERE memberid => '1'");
$salaris = 0;
while($list2 = mysql_query($query2))
{
$salaris += $list2['playersalaris'];
}
$dagelijks = 3000;
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
$query = " UPDATE members SET geld = '$budget3'";
$query3 = " UPDATE sponsors SET weken = weken -1 WHERE `memberid` = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}else{
echo"typ ?actie=1 achter de link!";
}
?>
session_start();
ini_set('display_errors', E_ALL);
error_reporting(E_ALL | E_STRICT);
require("config.php");
if ($actie == "1"){
$query = mysql_query(" SELECT * FROM members");
while($object = mysql_query($query)){
$members = $object->memberid;
echo"$members";
$query = mysql_query(" SELECT * FROM sponsors WHERE memberid => 1");
$result = mysql_query($query);
$totaal = 0;
while($list = mysql_query($query))
{
$totaal += $list['sponsor'];
}
$query3 = mysql_query(" SELECT * FROM members WHERE memberid = '$members'");
$result3 = mysql_query($query);
while($list3 = mysql_fetch_assoc($query3)){
$geld = $list3['geld'];
}
$query2 = mysql_query(" SELECT * FROM competitie_spelers2 WHERE memberid => '1'");
$salaris = 0;
while($list2 = mysql_query($query2))
{
$salaris += $list2['playersalaris'];
}
$dagelijks = 3000;
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
$query = " UPDATE members SET geld = '$budget3'";
$query3 = " UPDATE sponsors SET weken = weken -1 WHERE `memberid` = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}else{
echo"typ ?actie=1 achter de link!";
}
?>
De volgende foutmeldingen krijg ik daarbij:
Notice: Undefined variable: totaal in /home/jesseweika/domains/onlinecyclingmanager.nl/public_html/financienupdate.php on line 45
Notice: Undefined variable: geld in /home/jesseweika/domains/onlinecyclingmanager.nl/public_html/financienupdate.php on line 45
Notice: Undefined variable: dagelijks in /home/jesseweika/domains/onlinecyclingmanager.nl/public_html/financienupdate.php on line 46
Notice: Undefined variable: salaris in /home/jesseweika/domains/onlinecyclingmanager.nl/public_html/financienupdate.php on line 47
Notice: Undefined variable: members in /home/jesseweika/domains/onlinecyclingmanager.nl/public_html/financienupdate.php on line 49
Nu snap ik hier niks van omdat ik de variabelen daar net heb aangemaakt.
while($object = mysql_query($query)){
$query bestaat 1x, de while wordt dus 1x uitgevoerd. Tevens vraag ik mij af waarom je een query in een while wilt uitvoeren, slaat hier echt nergens op. Of probeer je hier soms te fetchen? Zo ja, gebruik dan mysql_fetch_assoc().
$query = mysql_query(" SELECT * FROM sponsors WHERE memberid => 1");
$result = mysql_query($query);
Dit is ook een nieuwe en vooral foute constructie. $result zal grandioos mislukken en $query is geen query maar een result-set. Wederom een puinhoop in de logica.
while($list = mysql_query($query))
Wederom een rare, en foute, constructie. Ik vermoed dat je probeert te fetchen, maar *_fetch_* schittert door afwezigheid. $query slaat dan nergens op, queries fetch je niet, $result fetch je echter wel.
Ongedefinieerde variabelen slaan op controles met variabelen die niet bestaan. if($totaal == 'iets') maar $totaal bestaat niet, er valt dus niets te vergelijken.
Nogmaals, ga eens gestructureerd debuggen. Zo te zien heb je geen flauw idee wat het script doet, waar functies voor dienen, etc. etc. Ga dan regel voor regel het script opnieuw opbouwen en testen. Hopelijk ga je dan begrijpen wat het script doet en wat bepaalde functies doen. Jouw huidige aanpak gaat niet werken. En mocht je het binnen 10 minuten alsnog aan de praat krijgen, dan vrees ik dat je er nog steeds niets van snapt.
Vergeet www.php.net niet!
$budget1 = $geld += $totaal;
Wat wil je daarmee?
En zowel $geld als $totaal moeten al bekend zijn.
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
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
<?
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
require("config.php");
// Nummers hoeven ook niet tussen quotes
if ($_GET['actie'] == 1) {
$query = mysql_query("SELECT * FROM members");
// mysql_fetch_assoc gebruik ipv mysql_query
while($object = mysql_fetch_assoc($query)) {
$members = $object['memberid'];
// Variabelen niet tussen quotes
echo $members;
$query = mysql_query("SELECT * FROM sponsors WHERE memberid => 1")or die("Fout in je sponsors query!");
// Waar heb je deze voor? Je mysql_query in een mysql_query?
//$result = mysql_query($query);
$totaal = 0;
// niet mysql_query, maar mysql_fetch_assoc
while($list = mysql_fetch_assoc($query))
{
$totaal += $list['sponsor'];
}
// Variabelen buiten de quotes
$query3 = mysql_query("SELECT * FROM members WHERE memberid = '".$members."'")or die("Error in je members query!");
// Weer een query in een query?
//$result3 = mysql_query($query);
$geld = 0;
while($list3 = mysql_fetch_assoc($query3)) {
$geld += $list3['geld'];
}
$query2 = mysql_query("SELECT * FROM competitie_spelers2 WHERE memberid => '1'");
$salaris = 0;
while($list2 = mysql_query($query2))
{
$salaris += $list2['playersalaris'];
}
$dagelijks = 3000;
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
$query = " UPDATE members SET geld = '$budget3'";
$query3 = " UPDATE sponsors SET weken = weken -1 WHERE `memberid` = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}else{
echo"typ ?actie=1 achter de link!";
}
?>
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
require("config.php");
// Nummers hoeven ook niet tussen quotes
if ($_GET['actie'] == 1) {
$query = mysql_query("SELECT * FROM members");
// mysql_fetch_assoc gebruik ipv mysql_query
while($object = mysql_fetch_assoc($query)) {
$members = $object['memberid'];
// Variabelen niet tussen quotes
echo $members;
$query = mysql_query("SELECT * FROM sponsors WHERE memberid => 1")or die("Fout in je sponsors query!");
// Waar heb je deze voor? Je mysql_query in een mysql_query?
//$result = mysql_query($query);
$totaal = 0;
// niet mysql_query, maar mysql_fetch_assoc
while($list = mysql_fetch_assoc($query))
{
$totaal += $list['sponsor'];
}
// Variabelen buiten de quotes
$query3 = mysql_query("SELECT * FROM members WHERE memberid = '".$members."'")or die("Error in je members query!");
// Weer een query in een query?
//$result3 = mysql_query($query);
$geld = 0;
while($list3 = mysql_fetch_assoc($query3)) {
$geld += $list3['geld'];
}
$query2 = mysql_query("SELECT * FROM competitie_spelers2 WHERE memberid => '1'");
$salaris = 0;
while($list2 = mysql_query($query2))
{
$salaris += $list2['playersalaris'];
}
$dagelijks = 3000;
}
$budget1 = $geld += $totaal;
$budget2 = $budget1 += $dagelijks;
$budget3 = $budget2 -= $salaris;
$query = " UPDATE members SET geld = '$budget3'";
$query3 = " UPDATE sponsors SET weken = weken -1 WHERE `memberid` = '$members'";
mysql_query($query) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
echo "Gesimuleerd.";
}else{
echo"typ ?actie=1 achter de link!";
}
?>