Pagina ombouwen naar PHP 7. MySQLI_query mist $query parameter
Ik zit met het volgende probleem. Ik heb lang geleden wat met PHP gedaan, maar heb totaal geen idee wat er nu fout is aan mijn SQL aanroep. Ik heb begrepen dat er wijzigingen zijn in de SQL aanroep waardoor alles nu via SQLi gaat. Die stukjes script zijn allemaal aangepast van SQL naar SLQi. Maar in de debugging tool, PHPstorm, blijf ik nu de melding krijgen dat ik een parameter $query mis in mijn mysqli_query aanroep. Ik heb eerlijk werkelijk geen idee wat er nu fout gaat of wat ik mis. Uit de documentatie op de PHP site kan ik niet precies halen wat de $query parameter inhoud.
Hieronder het script. Zou iemand mijn kunnen en willen helpen? Als ik de logica door heb kan ik verder gaan met aanpassen en ombouwen.
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<?
$DBhost = "host";
$DBuser = "username";
$DBpass = "password";
$DBname = "DBname";
header('Content-Type: text/html; charset=utf-8');
error_reporting(0);
@ini_set('display_errors', 0);
// error_reporting(E_ALL ^ E_NOTICE);
include("get_vars.php");
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
$tijd = date("d-m-Y H:i:s");
$nieuwdatum = date("U");
$nb_dag = date("d");
$vorig_jaar = date("Y")-1;
$msql = mysqli_connect($DBhost,$DBuser,$DBpass,$DBname);
//Haal IP-adres bezoeker op
if (getenv("HTTP_CLIENT_IP")) { $uip = getenv("HTTP_CLIENT_IP"); }
elseif (getenv("HTTP_X_FORWARDED_FOR")) { $uip = getenv("HTTP_X_FORWARDED_FOR"); }
else { $uip = getenv("REMOTE_ADDR"); }
//Controleer IP-adres
$sql_ip = mysqli_query("SELECT * FROM animoso_ipblock WHERE ip = '$uip'");
if (mysqli_num_rows($sql_ip) > 0) { exit; }
// NACHTBATCH!
$rapportage_tekst = "";
// Wat is de datum van vandaag?
$vandaag = Date("d-m-Y");
$datearr2 = explode("-",$vandaag);
$d_vandaag = mktime(0,0,0,$datearr2[1],$datearr2[0],$datearr2[2]);
$datum_vandaag = strftime("%d-%m-%Y",$d_vandaag);
$d = mysqli_query("SELECT * FROM stats");
while ($record = mysqli_fetch_object($d))
{
$dd = $record->dag;
}
// Als een nieuwe dag aanbreekt, voer dan de volgende acties uit:
if ($dd <> "$nb_dag") {
// Dag = dag + 1
mysqli_query("UPDATE stats SET dag = '$nb_dag'");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'HR', 'HR', 'HR', 'HR')");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft de nachtbatch', 'gestart', 'op $tijd')");
// Statistieken bijwerken
mysqli_query("INSERT INTO animoso_stats VALUES('', '$vandaag', '1')");
// IEDEREEN UITLOGGEN!
$rapportage_tekst = "$rapportage_tekst \n";
$sql_uitloggen = mysqli_query("SELECT * FROM animoso_leden WHERE active = '1' ORDER BY naam");
while ($record = mysqli_fetch_object($sql_uitloggen)) {
// mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft $record->vnaam $record->tussenvoegsel $record->naam', 'automatisch uitgelogd', 'op $tijd')");
$rapportage_tekst = "$rapportage_tekst Het systeem heeft $record->vnaam $record->tussenvoegsel $record->naam automatisch uitgelogd.\n";
}
mysqli_query("UPDATE animoso_leden SET active = '0', nieuwdatum = '$nieuwdatum' WHERE active = '1'");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft iedereen automatisch uitgelogd', 'voor de nachtbatch', 'op $tijd')");
// DEADLINE!!!
$tijd_nb = date("d-m-Y H:i:s");
$rapportage_tekst = "$rapportage_tekst \n";
$sql_optreden = mysqli_query("SELECT * FROM animoso_optredens WHERE blok = '0' AND jaar > '$vorig_jaar' AND status <> 'Geannuleerd'");
while ($record = mysqli_fetch_object($sql_optreden)) {
if ($record->d_dag<>"" && $record->d_dag>0) {
// Wat is de datum waarop de deadline is verstreken?
// $deadline = "-$record->deadline";
// $deadline = $deadline - 7;
$optreden_datum = "$record->dag-$record->maand-$record->jaar";
// $datearr = split("-",$optreden_datum);
// $timestamp = mktime(0,0,0,$datearr[1],$datearr[0],$datearr[2]);
// $timestamp2 = strtotime("$deadline days",$timestamp);
// $deadline_datum = strftime("%d-%m-%Y",$timestamp2);
$deadline_datum = "$record->d_dag-$record->d_maand-$record->d_jaar";
$datearr = split("-",$deadline_datum);
$timestamp = mktime(0,0,0,$datearr[1],$datearr[0],$datearr[2]);
$timestamp2 = strtotime("-7 days",$timestamp);
$herinnering_datum = strftime("%d-%m-%Y",$timestamp2);
if ((strtotime($datum_vandaag)) == strtotime($optreden_datum)) {
$rapportage_tekst = "$rapportage_tekst Het optreden $record->omschrijving vindt vandaag plaats in $record->locatie.\n";
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het optreden', '$record->omschrijving', 'vindt vandaag', 'plaats in $record->locatie')");
}
// Als vandaag -7 dagen een deadline is verstreken...
if ((strtotime($datum_vandaag)) == strtotime($herinnering_datum)) {
$rapportage_tekst = "$rapportage_tekst De deadline voor optreden $record->omschrijving is over 7 dagen verstreken.\n";
mysqli_query("INSERT INTO animoso_acties VALUES('', 'De deadline', 'voor optreden $record->omschrijving', 'is verstreken', 'over 7 dagen')");
// Selecteer alle leden...
$sql_leden= mysqli_query("SELECT * FROM animoso_leden WHERE rechten > '0' AND optredens = 1 ORDER BY naam");
while ($record2 = mysqli_fetch_object($sql_leden)) {
// Mail dan de mensen die hun status 'Ik weet het nog niet' hebben...
$sql_bezetting = mysqli_query("SELECT * FROM animoso_bezetting WHERE optreden = '$record->id' AND uid = '$record2->id' AND blok = '0'");
if (mysqli_num_rows($sql_bezetting)>0) {
while ($record3 = mysqli_fetch_object($sql_bezetting)) {
if ($record3->status=="Ik weet het nog niet") {
// Mail dan de mensen die hun status 'Onbekend' hebben...
$rapportage_tekst = "$rapportage_tekst $record2->vnaam $record2->tussenvoegsel $record2->naam heeft status 'Ik weet het nog niet' voor optreden $record->omschrijving en heeft een herinnering ontvangen op $record2->emailadres\n";
mail("$record2->emailadres", "Herinnering '$record->omschrijving'", "Beste $record2->vnaam,\n\nOp $record->dag-$record->maand-$record->jaar vindt het optreden '$record->omschrijving' plaats. Je hebt aangegeven dat je nog niet weet of je wel of niet aanwezig zal zijn. Laat dat alsnog even weten door hieronder de gewenste optie te kiezen. Wil je dat voor $deadline_datum doen, ook als je niet komt.\n\n----------------\nKlik hier als je kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=ja&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\nKlik hier als je NIET kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=nee&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\n----------------\n\nJe kunt je uiteraard ook vanuit leden.animoso.nl aan- of afmelden.\n\nAlvast bedankt!\n\nAnimoso.nl",
"From: Sambaband Animoso<[email protected]>\n"
."Reply-To: [email protected]\n"
."X-Mailer: PHP/" . phpversion());
mysqli_query("INSERT INTO animoso_acties VALUES('', '$record2->vnaam $record2->tussenvoegsel $record2->naam', 'heeft een herinnering', 'voor [$record->omschrijving] ontvangen', 'op $tijd')");
}
}
} else {
// Mail dan de mensen die hun status 'Onbekend' hebben...
$rapportage_tekst = "$rapportage_tekst $record2->vnaam $record2->tussenvoegsel $record2->naam heeft status 'Onbekend' voor optreden $record->omschrijving en heeft een herinnering ontvangen op $record2->emailadres\n";
mail("$record2->emailadres", "Herinnering '$record->omschrijving'", "Beste $record2->vnaam,\n\nOp $record->dag-$record->maand-$record->jaar vindt het optreden '$record->omschrijving' plaats. Je hebt nog niet aangegeven of je wel of niet aanwezig zal zijn. Laat dat alsnog even weten door hieronder de gewenste optie te kiezen. Wil je dat voor $deadline_datum doen, ook als je niet komt.\n\n----------------\nKlik hier als je kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=ja&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\nKlik hier als je NIET kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=nee&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\n----------------\n\nJe kunt je uiteraard ook vanuit leden.animoso.nl aan- of afmelden.\n\nAlvast bedankt!\n\nAnimoso.nl",
"From: Sambaband Animoso<[email protected]>\n"
."Reply-To: [email protected]\n"
."X-Mailer: PHP/" . phpversion());
mysqli_query("INSERT INTO animoso_acties VALUES('', '$record2->vnaam $record2->tussenvoegsel $record2->naam', 'heeft een herinnering', 'voor [$record->omschrijving] ontvangen', 'op $tijd')");
}
}
}
}
}
$tijd_nb = date("d-m-Y H:i:s");
// VERJAARDAGEN!!!
$rapportage_tekst = "$rapportage_tekst \n";
$sql_leden2= mysqli_query("SELECT * FROM animoso_leden WHERE rechten > '0' AND id <> '3' ORDER BY naam");
while ($record5 = mysqli_fetch_object($sql_leden2)) {
$geboortedatum_db = $record5->geboortedatum;
// $geboortedatum_db = str_replace("-1-","-01-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-2-","-02-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-3-","-03-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-4-","-04-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-5-","-05-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-6-","-06-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-7-","-07-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-8-","-08-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-9-","-09-",$geboortedatum_db);
if ($geboortedatum_db<>"") {
$datearr3 = split("-",$geboortedatum_db);
$geboortedatum = "$datearr3[0]-$datearr3[1]";
$vandaag_geboorte = date("d-m");
if ($vandaag_geboorte==$geboortedatum) {
$rapportage_tekst = "$rapportage_tekst $record5->vnaam $record5->tussenvoegsel $record5->naam is vandaag ($record5->geboortedatum) jarig!\n";
mysqli_query("INSERT INTO animoso_acties VALUES('', '$record5->vnaam $record5->tussenvoegsel $record5->naam', 'is', 'jarig', 'vandaag')");
$sql_leden22= mysqli_query("SELECT * FROM animoso_leden WHERE rechten > '0' AND verjaardagsherinnering = '1' ORDER BY naam");
while ($record22 = mysqli_fetch_object($sql_leden22)) {
mail("$record22->emailadres", "Verjaardagsherinnering", "Beste $record22->vnaam,\n\nVandaag is $record5->vnaam $record5->tussenvoegsel $record5->naam jarig (geboren: $record5->geboortedatum).\n\nMocht je deze verjaardagsherinneringen niet meer willen ontvangen, schakel de optie dan uit onder 'Mijn gegevens' op leden.animoso.nl.\n\nAnimoso.nl",
"From: Sambaband Animoso<[email protected]>\n"
."Reply-To: [email protected]\n"
."X-Mailer: PHP/" . phpversion());
}
}
}
}
// Rapportage
// mail("[email protected]", "Rapportage Nachtbatch
//$datum2", "---- BEGIN RAPPORTAGE ----\n\nDe Nachtbatch van
//$tijd is met succes afgerond.\n\n$rapportage_tekst\n\n----
//EINDE RAPPORTAGE ----",
// "From: Sambaband Animoso<[email protected]>\n"
// ."Reply-To: [email protected]\n"
// ."X-Mailer: PHP/" . phpversion());
$tijd_nb = date("d-m-Y H:i:s");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft de nachtbatch', 'succesvol uitgevoerd', 'op $tijd_nb')");
} else {
mysqli_query("UPDATE animoso_stats SET aantal = aantal + 1 WHERE datum = '$vandaag'");
}
?>
$DBhost = "host";
$DBuser = "username";
$DBpass = "password";
$DBname = "DBname";
header('Content-Type: text/html; charset=utf-8');
error_reporting(0);
@ini_set('display_errors', 0);
// error_reporting(E_ALL ^ E_NOTICE);
include("get_vars.php");
include("Mobile_Detect.php");
$detect = new Mobile_Detect();
$tijd = date("d-m-Y H:i:s");
$nieuwdatum = date("U");
$nb_dag = date("d");
$vorig_jaar = date("Y")-1;
$msql = mysqli_connect($DBhost,$DBuser,$DBpass,$DBname);
//Haal IP-adres bezoeker op
if (getenv("HTTP_CLIENT_IP")) { $uip = getenv("HTTP_CLIENT_IP"); }
elseif (getenv("HTTP_X_FORWARDED_FOR")) { $uip = getenv("HTTP_X_FORWARDED_FOR"); }
else { $uip = getenv("REMOTE_ADDR"); }
//Controleer IP-adres
$sql_ip = mysqli_query("SELECT * FROM animoso_ipblock WHERE ip = '$uip'");
if (mysqli_num_rows($sql_ip) > 0) { exit; }
// NACHTBATCH!
$rapportage_tekst = "";
// Wat is de datum van vandaag?
$vandaag = Date("d-m-Y");
$datearr2 = explode("-",$vandaag);
$d_vandaag = mktime(0,0,0,$datearr2[1],$datearr2[0],$datearr2[2]);
$datum_vandaag = strftime("%d-%m-%Y",$d_vandaag);
$d = mysqli_query("SELECT * FROM stats");
while ($record = mysqli_fetch_object($d))
{
$dd = $record->dag;
}
// Als een nieuwe dag aanbreekt, voer dan de volgende acties uit:
if ($dd <> "$nb_dag") {
// Dag = dag + 1
mysqli_query("UPDATE stats SET dag = '$nb_dag'");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'HR', 'HR', 'HR', 'HR')");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft de nachtbatch', 'gestart', 'op $tijd')");
// Statistieken bijwerken
mysqli_query("INSERT INTO animoso_stats VALUES('', '$vandaag', '1')");
// IEDEREEN UITLOGGEN!
$rapportage_tekst = "$rapportage_tekst \n";
$sql_uitloggen = mysqli_query("SELECT * FROM animoso_leden WHERE active = '1' ORDER BY naam");
while ($record = mysqli_fetch_object($sql_uitloggen)) {
// mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft $record->vnaam $record->tussenvoegsel $record->naam', 'automatisch uitgelogd', 'op $tijd')");
$rapportage_tekst = "$rapportage_tekst Het systeem heeft $record->vnaam $record->tussenvoegsel $record->naam automatisch uitgelogd.\n";
}
mysqli_query("UPDATE animoso_leden SET active = '0', nieuwdatum = '$nieuwdatum' WHERE active = '1'");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft iedereen automatisch uitgelogd', 'voor de nachtbatch', 'op $tijd')");
// DEADLINE!!!
$tijd_nb = date("d-m-Y H:i:s");
$rapportage_tekst = "$rapportage_tekst \n";
$sql_optreden = mysqli_query("SELECT * FROM animoso_optredens WHERE blok = '0' AND jaar > '$vorig_jaar' AND status <> 'Geannuleerd'");
while ($record = mysqli_fetch_object($sql_optreden)) {
if ($record->d_dag<>"" && $record->d_dag>0) {
// Wat is de datum waarop de deadline is verstreken?
// $deadline = "-$record->deadline";
// $deadline = $deadline - 7;
$optreden_datum = "$record->dag-$record->maand-$record->jaar";
// $datearr = split("-",$optreden_datum);
// $timestamp = mktime(0,0,0,$datearr[1],$datearr[0],$datearr[2]);
// $timestamp2 = strtotime("$deadline days",$timestamp);
// $deadline_datum = strftime("%d-%m-%Y",$timestamp2);
$deadline_datum = "$record->d_dag-$record->d_maand-$record->d_jaar";
$datearr = split("-",$deadline_datum);
$timestamp = mktime(0,0,0,$datearr[1],$datearr[0],$datearr[2]);
$timestamp2 = strtotime("-7 days",$timestamp);
$herinnering_datum = strftime("%d-%m-%Y",$timestamp2);
if ((strtotime($datum_vandaag)) == strtotime($optreden_datum)) {
$rapportage_tekst = "$rapportage_tekst Het optreden $record->omschrijving vindt vandaag plaats in $record->locatie.\n";
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het optreden', '$record->omschrijving', 'vindt vandaag', 'plaats in $record->locatie')");
}
// Als vandaag -7 dagen een deadline is verstreken...
if ((strtotime($datum_vandaag)) == strtotime($herinnering_datum)) {
$rapportage_tekst = "$rapportage_tekst De deadline voor optreden $record->omschrijving is over 7 dagen verstreken.\n";
mysqli_query("INSERT INTO animoso_acties VALUES('', 'De deadline', 'voor optreden $record->omschrijving', 'is verstreken', 'over 7 dagen')");
// Selecteer alle leden...
$sql_leden= mysqli_query("SELECT * FROM animoso_leden WHERE rechten > '0' AND optredens = 1 ORDER BY naam");
while ($record2 = mysqli_fetch_object($sql_leden)) {
// Mail dan de mensen die hun status 'Ik weet het nog niet' hebben...
$sql_bezetting = mysqli_query("SELECT * FROM animoso_bezetting WHERE optreden = '$record->id' AND uid = '$record2->id' AND blok = '0'");
if (mysqli_num_rows($sql_bezetting)>0) {
while ($record3 = mysqli_fetch_object($sql_bezetting)) {
if ($record3->status=="Ik weet het nog niet") {
// Mail dan de mensen die hun status 'Onbekend' hebben...
$rapportage_tekst = "$rapportage_tekst $record2->vnaam $record2->tussenvoegsel $record2->naam heeft status 'Ik weet het nog niet' voor optreden $record->omschrijving en heeft een herinnering ontvangen op $record2->emailadres\n";
mail("$record2->emailadres", "Herinnering '$record->omschrijving'", "Beste $record2->vnaam,\n\nOp $record->dag-$record->maand-$record->jaar vindt het optreden '$record->omschrijving' plaats. Je hebt aangegeven dat je nog niet weet of je wel of niet aanwezig zal zijn. Laat dat alsnog even weten door hieronder de gewenste optie te kiezen. Wil je dat voor $deadline_datum doen, ook als je niet komt.\n\n----------------\nKlik hier als je kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=ja&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\nKlik hier als je NIET kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=nee&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\n----------------\n\nJe kunt je uiteraard ook vanuit leden.animoso.nl aan- of afmelden.\n\nAlvast bedankt!\n\nAnimoso.nl",
"From: Sambaband Animoso<[email protected]>\n"
."Reply-To: [email protected]\n"
."X-Mailer: PHP/" . phpversion());
mysqli_query("INSERT INTO animoso_acties VALUES('', '$record2->vnaam $record2->tussenvoegsel $record2->naam', 'heeft een herinnering', 'voor [$record->omschrijving] ontvangen', 'op $tijd')");
}
}
} else {
// Mail dan de mensen die hun status 'Onbekend' hebben...
$rapportage_tekst = "$rapportage_tekst $record2->vnaam $record2->tussenvoegsel $record2->naam heeft status 'Onbekend' voor optreden $record->omschrijving en heeft een herinnering ontvangen op $record2->emailadres\n";
mail("$record2->emailadres", "Herinnering '$record->omschrijving'", "Beste $record2->vnaam,\n\nOp $record->dag-$record->maand-$record->jaar vindt het optreden '$record->omschrijving' plaats. Je hebt nog niet aangegeven of je wel of niet aanwezig zal zijn. Laat dat alsnog even weten door hieronder de gewenste optie te kiezen. Wil je dat voor $deadline_datum doen, ook als je niet komt.\n\n----------------\nKlik hier als je kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=ja&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\nKlik hier als je NIET kunt spelen: http://leden.animoso.nl/aanmelden.php?actie=nee&optreden=$record->id&uid=$record2->id&checksum=$record2->checksum\n----------------\n\nJe kunt je uiteraard ook vanuit leden.animoso.nl aan- of afmelden.\n\nAlvast bedankt!\n\nAnimoso.nl",
"From: Sambaband Animoso<[email protected]>\n"
."Reply-To: [email protected]\n"
."X-Mailer: PHP/" . phpversion());
mysqli_query("INSERT INTO animoso_acties VALUES('', '$record2->vnaam $record2->tussenvoegsel $record2->naam', 'heeft een herinnering', 'voor [$record->omschrijving] ontvangen', 'op $tijd')");
}
}
}
}
}
$tijd_nb = date("d-m-Y H:i:s");
// VERJAARDAGEN!!!
$rapportage_tekst = "$rapportage_tekst \n";
$sql_leden2= mysqli_query("SELECT * FROM animoso_leden WHERE rechten > '0' AND id <> '3' ORDER BY naam");
while ($record5 = mysqli_fetch_object($sql_leden2)) {
$geboortedatum_db = $record5->geboortedatum;
// $geboortedatum_db = str_replace("-1-","-01-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-2-","-02-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-3-","-03-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-4-","-04-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-5-","-05-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-6-","-06-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-7-","-07-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-8-","-08-",$geboortedatum_db);
// $geboortedatum_db = str_replace("-9-","-09-",$geboortedatum_db);
if ($geboortedatum_db<>"") {
$datearr3 = split("-",$geboortedatum_db);
$geboortedatum = "$datearr3[0]-$datearr3[1]";
$vandaag_geboorte = date("d-m");
if ($vandaag_geboorte==$geboortedatum) {
$rapportage_tekst = "$rapportage_tekst $record5->vnaam $record5->tussenvoegsel $record5->naam is vandaag ($record5->geboortedatum) jarig!\n";
mysqli_query("INSERT INTO animoso_acties VALUES('', '$record5->vnaam $record5->tussenvoegsel $record5->naam', 'is', 'jarig', 'vandaag')");
$sql_leden22= mysqli_query("SELECT * FROM animoso_leden WHERE rechten > '0' AND verjaardagsherinnering = '1' ORDER BY naam");
while ($record22 = mysqli_fetch_object($sql_leden22)) {
mail("$record22->emailadres", "Verjaardagsherinnering", "Beste $record22->vnaam,\n\nVandaag is $record5->vnaam $record5->tussenvoegsel $record5->naam jarig (geboren: $record5->geboortedatum).\n\nMocht je deze verjaardagsherinneringen niet meer willen ontvangen, schakel de optie dan uit onder 'Mijn gegevens' op leden.animoso.nl.\n\nAnimoso.nl",
"From: Sambaband Animoso<[email protected]>\n"
."Reply-To: [email protected]\n"
."X-Mailer: PHP/" . phpversion());
}
}
}
}
// Rapportage
// mail("[email protected]", "Rapportage Nachtbatch
//$datum2", "---- BEGIN RAPPORTAGE ----\n\nDe Nachtbatch van
//$tijd is met succes afgerond.\n\n$rapportage_tekst\n\n----
//EINDE RAPPORTAGE ----",
// "From: Sambaband Animoso<[email protected]>\n"
// ."Reply-To: [email protected]\n"
// ."X-Mailer: PHP/" . phpversion());
$tijd_nb = date("d-m-Y H:i:s");
mysqli_query("INSERT INTO animoso_acties VALUES('', 'Het systeem', 'heeft de nachtbatch', 'succesvol uitgevoerd', 'op $tijd_nb')");
} else {
mysqli_query("UPDATE animoso_stats SET aantal = aantal + 1 WHERE datum = '$vandaag'");
}
?>
http://php.net/mysqli-query
mysqli_query heeft per se minimaal 2 parameters nodig.
mysql_query() had ook de mogelijkheid om er 2 mee te geven, maar had de 2e optioneel.
nu zijn nr 1 en 2 van plek gewisseld EN verplicht
Toevoeging op 29/01/2019 10:05:51:
en op regel 22 maak je de betreffende var aan: $msql;
zie mysqli_query heeft per se minimaal 2 parameters nodig.
mysql_query() had ook de mogelijkheid om er 2 mee te geven, maar had de 2e optioneel.
nu zijn nr 1 en 2 van plek gewisseld EN verplicht
Toevoeging op 29/01/2019 10:05:51:
en op regel 22 maak je de betreffende var aan: $msql;
Procedural style :
http://php.net/manual/en/mysqli.query.php
Vergelijk o.a. regel 30 met de voorbeelden.
Als ik het goed begrijp moet ik er dus dit van maken? de $msql parameter meenemen om de connectie te specificeren.
$sql_ip = mysqli_query($msql,"SELECT * FROM animoso_ipblock WHERE ip = '$uip'");
Gewijzigd op 29/01/2019 13:50:50 door - Ariën -
Er zitten echt juweeltjes tussen.
Code (php)
Waarom niet niet
of
Code (php)
Je haalt dus alle records op uit een tabel. Volgorde willekeurig.
je loopt door de resultaten, en kijkt tenslotte daarna, (nadat je misschien inmiddels 1000 keer zinloos een rondje hebt gedaan, of de inhoud van het laatste record toevallig het nummer bevat van de datum van de huidige dag.
(zonder relatie met welk record dat was, en of er misschien ook nog een maand en een jaar van belang waren.
Datum, waar je tenminste nog ooit iets zinnigs mee wilt, sla je op in een kolom van het type DATE (of DATETIME)
Dus dan zou de query zijn:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$d = mysqli_query($msql, "SELECT COUNT(1) vandaaggedaan FROM stats WHERE datum >= CURRENT_DATE;");
$dd = $record->vandaaggedaan ;
// Als een nieuwe dag aanbreekt, voer dan de volgende acties uit:
if ($dd == 0) {
}
?>
$d = mysqli_query($msql, "SELECT COUNT(1) vandaaggedaan FROM stats WHERE datum >= CURRENT_DATE;");
$dd = $record->vandaaggedaan ;
// Als een nieuwe dag aanbreekt, voer dan de volgende acties uit:
if ($dd == 0) {
}
?>
En zulke grappen met datums doe je bij bijna elke query. 4 of 5 regels om allerlei onderdelen van datums te goochelen tot je een datum in een formaat hebt.
Terwijl de database gewoon met NOW() of CURRENT_DATE kan bepalen wat de datum van dit moment is.
Verder:
INSERT query's.
Als je daarin ook de kolommen noemt, hoef je a) niet een auto-increment kolom met een lege string te vullen en b) loop je niet het risico dat de volgorde ooit wijzigt, of als je een kolom toevoegt, je alle query's moet aanpassen. Dus ook de query's die eigenlijk niets met die kolom gaan doen.
Zeker ook, omdat veel variabele nogal korte namen hebben: $dd, $d of $tijd_nb.
(waarbij tijd_nb dus in een onbruikbaar formaat wordt opgeslagen: NOW() in een datetime kolom was eenvoudiger geweest EN je zou er ook op kunnen sorteren.
Bedankt voor op opmerkingen. Dit script zelf is alleen de pagina waarmee de hoofdconnecties worden gelegd. De website telt nog zo'n 60 andere pagina's met script. Ik moet dus ergens gaan beginnen.
We hebben als band in 2008 een eigen ledensite gebouwd volledig in PHP, deze werkte prima totdat de hosting partij overging naar PHP versie 7.0. Daarmee zijn we nu verplicht de webpagina compleet na te kijken. En heel eerlijk heb ik sinds de bouw van de website niet meer veel met PHP gedaan. Ik probeer er dus weer in te komen, maar heb verder zelf geen uitgebreide kennis.
Misschien een rare vraag, maar is het wel om te bouwen? We zijn er ook over aan het nadenken om de ledensite door een professional na te laten kijken, maar dat zal ook een aardige duit geld kosten.
Maar ik zal zeker de aanbevelingen mee nemen. Ik zag bijvoorbeeld ook al dat het niet meer mag starten met
Ik persoonlijk zou geheel opnieuw beginnen, en kijken of de oude data omgezet kan worden, zodat het niet verloren gaat.
Het is niet alleen een kwestie van verouderde functies (zoals mysql) maar ook onhandige dingen als "haal alle statistieken op (over 10 jaar dus kennelijk), doe er niets mee en kijk wat je als laatste binnen krijgt.
of in 4/5 regels met stukken datum schuiven tot je het formaat hebt dat je wilde.
PHP 7.0 is trouwens ook al verouderd.
Ik zou nu voor 7.2 of 7.3 gaan.
Of kijken of je site niet in een framework als Wordpress gehangen kan worden (of ander meer op community gericht zoals Elgg of zo (als dat nog bestaat)
Ik maak gebruik van PHPStorm om de code te controleren. Ik denk dat die automatisch in de laatste versie van PHP controleert. Maargoed, ik zou verwachten dan ondanks dat we heel omslachtig de data binnenhalen en gebruiken het wel zou moeten werken als we het script goed aanpassen. Desondanks krijg ik alleen een databaseconnectie, maar krijg geen query's uitgevoerd. Daarop heb ik eens een simpel stukje code in een pagina gezet en ook deze geeft geen data terug.
Doe ik nu echt zelf iets fout of zit er ook iets met de database niet goed?
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
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
<?php
$servername = "server";
$username = "user";
$password = "pass";
$dbname = "db";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, vnaam, naam FROM animoso_leden";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Voornaam: " . $row["vnaam"]. "-Achternaam" . $row["naam"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
$servername = "server";
$username = "user";
$password = "pass";
$dbname = "db";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, vnaam, naam FROM animoso_leden";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Voornaam: " . $row["vnaam"]. "-Achternaam" . $row["naam"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
Gewijzigd op 30/01/2019 14:42:52 door Timo Schmets
Krijg je dan meldingen te zien?
Toevoeging op 30/01/2019 15:32:33:
ep op de huidige regel 16 zou kunnen helpen:
Notice: Trying to get property of non-object in /home/public/sites/timo.animoso.nl/simple.php on line 21
0 resultsSuccess: A proper connection to MySQL was made! The my_db database is great.
Warning: mysqli_get_host_info(): Couldn't fetch mysqli in /home/public/sites/timo.animoso.nl/simple.php on line 39
Host information:
Warning: mysqli_close(): Couldn't fetch mysqli in /home/public/sites/timo.animoso.nl/simple.php on line 41
Toevoeging op 30/01/2019 16:00:48:
en met de regels die ik na regel 16 wilde hebben?
(na $result = ... )
Die regel zorgde voor de foutmelding die ik nodig had. Ik benaderde de foute database. Daar zat de tabel niet in die ik zocht. Nu werk de pagina wel.
Nu weet ik tenminste wel zeker dat het aanroepen van de database en de data in de database nog gewoon werkt.
Wanneer wordt bovenstaande code uitgevoerd? Is dit een include die iedere bezoeker voor zijn kiezen krijgt als 'ie de webpagina probeert te laden? Dan is dit een zogenaamde "poor man's cron(job)". Zou het in dat geval niet veel logischer zijn om hier ook een echte cronjob van te maken?
Iedereen toch bedankt!