hulp bij omzetting php naar php7
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
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
<?php
{
// connection to DB
$hostname = "localhost" ; // Name mysql server
$mysqluser = "user" ; // login
$mysqlpswd = "password" ; // password
$database = "dbname" ; // database name
$diemessage="Kan geen verbinding maken" ; // Error Message
@mysql_connect($hostname, $mysqluser, $mysqlpswd) OR $diemessage;
@mysql_selectdb($database) OR $diemessage;
//--------- throw query to get the records ------------
$req = $sql = "SELECT inschrijvingen2019.startnummer, inschrijvingen2019.voornaam, inschrijvingen2019.naam, inschrijvingen2019.gemeente,
inschrijvingen2019.uitslag_rush_ti1, inschrijvingen2019.uitslag_rush_ti2, inschrijvingen2019.punten_rush_ti1, inschrijvingen2019.punten_rush_ti2,
inschrijvingen2019.uitslag_rush_mo1, inschrijvingen2019.uitslag_rush_mo2, inschrijvingen2019.punten_rush_mo1, inschrijvingen2019.punten_rush_mo2,
inschrijvingen2019.uitslag_rush_el1, inschrijvingen2019.uitslag_rush_el2, inschrijvingen2019.punten_rush_el1, inschrijvingen2019.punten_rush_el2,
inschrijvingen2019.uitslag_rush_do1, inschrijvingen2019.uitslag_rush_do2, inschrijvingen2019.punten_rush_do1, inschrijvingen2019.punten_rush_do2,
inschrijvingen2019.uitslag_rush_wi1, inschrijvingen2019.uitslag_rush_wi2, inschrijvingen2019.punten_rush_wi1, inschrijvingen2019.punten_rush_wi2,
inschrijvingen2019.uitslag_rush_da1, inschrijvingen2019.uitslag_rush_da2, inschrijvingen2019.punten_rush_da1, inschrijvingen2019.punten_rush_da2,
inschrijvingen2019.uitslag_rush_li1, inschrijvingen2019.uitslag_rush_li2, inschrijvingen2019.punten_rush_li1, inschrijvingen2019.punten_rush_li2,
inschrijvingen2019.uitslag_rush_wo1, inschrijvingen2019.uitslag_rush_wo2, inschrijvingen2019.punten_rush_wo1, inschrijvingen2019.punten_rush_wo2,
inschrijvingen2019.tot_pnt_rush_ti, inschrijvingen2019.tot_pnt_rush_mo, inschrijvingen2019.tot_pnt_rush_el, inschrijvingen2019.tot_pnt_rush_do, inschrijvingen2019.tot_pnt_rush_wi, inschrijvingen2019.tot_pnt_rush_da, inschrijvingen2019.tot_pnt_rush_li, inschrijvingen2019.tot_pnt_rush_wo, inschrijvingen2019.tot_pnten_rush\n"
. "FROM inschrijvingen2019\n"
. "WHERE (((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_tielt)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_moorsele)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_elverdinge)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_doomkerke)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_wijtschate)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_dadizele)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_lichtervelde)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_woumen)=True))\n"
. "ORDER BY inschrijvingen2019.tot_pnten_rush DESC";
$result = mysql_query($req);
$total = mysql_num_rows($result);
for ($j=0; $j < $total; $j++)
{
$row = mysql_fetch_array( $result ); // get a record
echo "<TR><TD>".stripslashes($row['startnummer'])."</TD>
<TD>".stripslashes($row['voornaam'])."</TD>
<TD>".stripslashes($row['naam'])."</TD>
<TD>".stripslashes($row['gemeente'])."</TD>
<TD>".stripslashes($row['uitslag_rush_do1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_do2'])."</TD>
<TD>".stripslashes($row['punten_rush_do1'])."</TD>
<TD>".stripslashes($row['punten_rush_do2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_do'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_ti1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_ti2'])."</TD>
<TD>".stripslashes($row['punten_rush_ti1'])."</TD>
<TD>".stripslashes($row['punten_rush_ti2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_ti'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_mo1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_mo2'])."</TD>
<TD>".stripslashes($row['punten_rush_mo1'])."</TD>
<TD>".stripslashes($row['punten_rush_mo2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_mo'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_el1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_el2'])."</TD>
<TD>".stripslashes($row['punten_rush_el1'])."</TD>
<TD>".stripslashes($row['punten_rush_el2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_el'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_wi1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_wi2'])."</TD>
<TD>".stripslashes($row['punten_rush_wi1'])."</TD>
<TD>".stripslashes($row['punten_rush_wi2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_wi'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_da1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_da2'])."</TD>
<TD>".stripslashes($row['punten_rush_da1'])."</TD>
<TD>".stripslashes($row['punten_rush_da2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_da'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_li1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_li2'])."</TD>
<TD>".stripslashes($row['punten_rush_li1'])."</TD>
<TD>".stripslashes($row['punten_rush_li2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_li'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_wo1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_wo2'])."</TD>
<TD>".stripslashes($row['punten_rush_wo1'])."</TD>
<TD>".stripslashes($row['punten_rush_wo2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_wo'])."</strong></TD>
<TD><strong>".stripslashes($row['tot_pnten_rush'])."</strong></TD></TR>\n";
}
}
?>
{
// connection to DB
$hostname = "localhost" ; // Name mysql server
$mysqluser = "user" ; // login
$mysqlpswd = "password" ; // password
$database = "dbname" ; // database name
$diemessage="Kan geen verbinding maken" ; // Error Message
@mysql_connect($hostname, $mysqluser, $mysqlpswd) OR $diemessage;
@mysql_selectdb($database) OR $diemessage;
//--------- throw query to get the records ------------
$req = $sql = "SELECT inschrijvingen2019.startnummer, inschrijvingen2019.voornaam, inschrijvingen2019.naam, inschrijvingen2019.gemeente,
inschrijvingen2019.uitslag_rush_ti1, inschrijvingen2019.uitslag_rush_ti2, inschrijvingen2019.punten_rush_ti1, inschrijvingen2019.punten_rush_ti2,
inschrijvingen2019.uitslag_rush_mo1, inschrijvingen2019.uitslag_rush_mo2, inschrijvingen2019.punten_rush_mo1, inschrijvingen2019.punten_rush_mo2,
inschrijvingen2019.uitslag_rush_el1, inschrijvingen2019.uitslag_rush_el2, inschrijvingen2019.punten_rush_el1, inschrijvingen2019.punten_rush_el2,
inschrijvingen2019.uitslag_rush_do1, inschrijvingen2019.uitslag_rush_do2, inschrijvingen2019.punten_rush_do1, inschrijvingen2019.punten_rush_do2,
inschrijvingen2019.uitslag_rush_wi1, inschrijvingen2019.uitslag_rush_wi2, inschrijvingen2019.punten_rush_wi1, inschrijvingen2019.punten_rush_wi2,
inschrijvingen2019.uitslag_rush_da1, inschrijvingen2019.uitslag_rush_da2, inschrijvingen2019.punten_rush_da1, inschrijvingen2019.punten_rush_da2,
inschrijvingen2019.uitslag_rush_li1, inschrijvingen2019.uitslag_rush_li2, inschrijvingen2019.punten_rush_li1, inschrijvingen2019.punten_rush_li2,
inschrijvingen2019.uitslag_rush_wo1, inschrijvingen2019.uitslag_rush_wo2, inschrijvingen2019.punten_rush_wo1, inschrijvingen2019.punten_rush_wo2,
inschrijvingen2019.tot_pnt_rush_ti, inschrijvingen2019.tot_pnt_rush_mo, inschrijvingen2019.tot_pnt_rush_el, inschrijvingen2019.tot_pnt_rush_do, inschrijvingen2019.tot_pnt_rush_wi, inschrijvingen2019.tot_pnt_rush_da, inschrijvingen2019.tot_pnt_rush_li, inschrijvingen2019.tot_pnt_rush_wo, inschrijvingen2019.tot_pnten_rush\n"
. "FROM inschrijvingen2019\n"
. "WHERE (((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_tielt)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_moorsele)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_elverdinge)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_doomkerke)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_wijtschate)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_dadizele)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_lichtervelde)=True)) OR
(((inschrijvingen2019.startnummer)>200) AND ((inschrijvingen2019.betaald_woumen)=True))\n"
. "ORDER BY inschrijvingen2019.tot_pnten_rush DESC";
$result = mysql_query($req);
$total = mysql_num_rows($result);
for ($j=0; $j < $total; $j++)
{
$row = mysql_fetch_array( $result ); // get a record
echo "<TR><TD>".stripslashes($row['startnummer'])."</TD>
<TD>".stripslashes($row['voornaam'])."</TD>
<TD>".stripslashes($row['naam'])."</TD>
<TD>".stripslashes($row['gemeente'])."</TD>
<TD>".stripslashes($row['uitslag_rush_do1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_do2'])."</TD>
<TD>".stripslashes($row['punten_rush_do1'])."</TD>
<TD>".stripslashes($row['punten_rush_do2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_do'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_ti1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_ti2'])."</TD>
<TD>".stripslashes($row['punten_rush_ti1'])."</TD>
<TD>".stripslashes($row['punten_rush_ti2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_ti'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_mo1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_mo2'])."</TD>
<TD>".stripslashes($row['punten_rush_mo1'])."</TD>
<TD>".stripslashes($row['punten_rush_mo2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_mo'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_el1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_el2'])."</TD>
<TD>".stripslashes($row['punten_rush_el1'])."</TD>
<TD>".stripslashes($row['punten_rush_el2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_el'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_wi1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_wi2'])."</TD>
<TD>".stripslashes($row['punten_rush_wi1'])."</TD>
<TD>".stripslashes($row['punten_rush_wi2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_wi'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_da1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_da2'])."</TD>
<TD>".stripslashes($row['punten_rush_da1'])."</TD>
<TD>".stripslashes($row['punten_rush_da2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_da'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_li1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_li2'])."</TD>
<TD>".stripslashes($row['punten_rush_li1'])."</TD>
<TD>".stripslashes($row['punten_rush_li2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_li'])."</strong></TD>
<TD>".stripslashes($row['uitslag_rush_wo1'])."</TD>
<TD>".stripslashes($row['uitslag_rush_wo2'])."</TD>
<TD>".stripslashes($row['punten_rush_wo1'])."</TD>
<TD>".stripslashes($row['punten_rush_wo2'])."</TD>
<TD><strong>".stripslashes($row['tot_pnt_rush_wo'])."</strong></TD>
<TD><strong>".stripslashes($row['tot_pnten_rush'])."</strong></TD></TR>\n";
}
}
?>
https://www.php.net/manual/en/mysqli.construct.php
https://www.php.net/manual/en/mysqli-result.fetch-array.php
De mysql_ functies zijn verouderd en vanaf PHP 7 ook niet meer beschikbaar. Het makkelijkste is om deze over te zetten naar de nieuwe mysqli_ functies* (met een i dus) omdat deze het meeste lijken op de mysql_ functies. Als je tenminste naar de procedural voorbeelden kijkt. Toch zijn er een aantal wijzigingen. Zo kun je regel 11 en 12 samenvoegen tot één regel met een mysqli_connect functie. Let er tevens op dat je voor mysqli_connect() en mysqli_query() netjes controleert of die functies geen foutmeldingen opleveren.
Bij regel 37 moet je een extra variabele meegeven die je teruggekregen hebt van die mysql_connect functie.
De functies stripslashes() moet je vervangen voor mysqli_real_escape_string() functies.
Die apenstaartjes moet je ook weghalen en weglaten. Beter is het om in de testfase alle foutmeldingen te laten zien en in de productie fase zet je alle php errors gewoon uit. Je kunt dit op een aantal manieren instellen zoals in php.ini maar ook gewoon met twee regels aan het begin van je script. De linkjes van Adoptive en Google zullen je helpen en als je er niet uit komt kunnen we je alsnog verder helpen.
* nog beter zou het zijn om over te stappen naar PDO maar enkel voor dit scriptje is heeft het amper meerwaarde en wordt de vertaalslag een stuk lastiger.
Verder zie ik zo al enkele eigenaardigheden in je script.
- je logingegevens (username, password) voor de database kunnen beter in een apart php bestand dat buiten je webroot wordt opgeslagen.
- op regel 16 kopieer je dezelfde inhoud van $sql in $req. Waarom?
- zoals gezegd waarom foutmelingen onderdrukken met een @ ?
- Je query ziet er eigenaardig uit. Maar we zouden wat meer achtergrond info moeten hebben om daar echt een oordeel over te vellen
- mysql_fetch_array maakt zowel een associatieve array aan als een numerieke array. Als je deze wijzigt naar een mysqli_fetch_assoc() functie dan scheelt dat weer wat geheugenruimte die gebruikt wordt.
- regel 38 is (zover ik hier kan zien) overbodig. Gebruik een foreach() lus in plaats van een for lus en je hebt regel 38 niet meer nodig. Dat scheelt dan weer een query wat toch een vrij 'dure' actie is.
Gewijzigd op 03/01/2020 18:43:16 door Frank Nietbelangrijk
Ik doe dit om de resultaten van verschillende wedstrijden weer te geven vanuit een database. De gegevens van die database werden verzameld via een online inschrijving, gevolgd door mijn toevoegingen per wedstrijd (uitslagen via ms access en een ODBC-verbinding met deze tabel).
Die sql klopt zeker (daar heb ik wat meer verstand van).
Ik heb al veel zitten klooien met die PHP-code, ik raak er echt niet uit.
Ik heb veel gelijkaardige oude php scrips en het zou fantastisch zijn moest iemand dit script kunnen aanpassen (en eventueel verbeteren). Ik denk er dan wel te kunnen in slagen om alle andere php-scrips te kunnen aanpassen.
Ik doe al dit werk op vrijwillige basis, zonder enige vorm van winstbejag.
Alvast enorme dank aan de personen die me hierboven al wat op weg hebben willen helpen.
Ik heb toch nog wat meer hulp nodig vrees ik... (schaam schaam,...)
Kijk daarom eens naar: https://php.net/{functienaam}
Dus:
https://php.net/mysqli_connect
https://php.net/mysqli_query
https://php.net/mysqli_num_rows
https://php.net/mysqli_fetch_assoc
Maar als je ergens op vastloopt, laat maar even zien waarop....
Misschien is het een kleinigheidje en ben je er al bijna.
Gewijzigd op 05/01/2020 22:39:50 door - Ariën -
Stripslashes haalt slashes weg, maar waarom zou je extra slashes hebben? Dat zou het geval zijn bij de prehistoriesche optie magic-quotes. Of je hebt een extra addslashes() toegevoegd en je database vervuild.
htmlspecialchars() zorgt dat een < in je record niet de html kapot maakt.
--
Verder kun je die check Startnummmer > 200 buiten haakjes halen:
WHERE startnr>200 AND (dit OR dat OR nogiets)
Dat maakt je query wat korter..