webshop tutorial mysql updaten naar mysqli
Het leek mij een uitdaging om de tutorial van "winkelwagen-update-van-de-tutorial" up te daten naar mysqli.
Daar ik nieuw ben in het gebruik van mysql / mysqli, hoop ik hier begeleidende hulp en tips te vinden.
De config.php lijkt al te werken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// Mysqli host
$host = 'localhost';
// Mysqli gebruikersnaam
$user = 'root';
// Mysqli wachtwoord
$pass = 'usbw';
// Mysqli database naam
$datb = 'myshop';
$db = new mysqli($host, $user, $pass, $datb);
if($db->connect_errno > 0){
die('Kan niet verbinden met de database [' . $db->connect_error . ']');
}
?>
// Mysqli host
$host = 'localhost';
// Mysqli gebruikersnaam
$user = 'root';
// Mysqli wachtwoord
$pass = 'usbw';
// Mysqli database naam
$datb = 'myshop';
$db = new mysqli($host, $user, $pass, $datb);
if($db->connect_errno > 0){
die('Kan niet verbinden met de database [' . $db->connect_error . ']');
}
?>
Dit leek mij een goede aanpassing.
volgende stap begon ik te twijfelen (vooral omdat mijn usbwebserver geen melding geeft over mysql deprecated blablabla...)
index.php
zou ik dan aanpassen naar
graag had ik opmerkingen en tips ontvangen zodat ik op het juiste pad meeloop :-)
mvg, Nick
Gewijzigd op 04/11/2015 23:27:55 door Nick VanRossem
PHP biedt mysqli in twee smaken: procedureel en OOP. In je config gebruik je nu OOP dus dan zou het netjes zijn om in de rest van je programma ook OOP te gebruiken. Je krijgt dan zoiets:
Ook vind ik de variabelenaam $sql onhandig gekozen. Je krijgt namelijk helemaal geen SQL terug maar een Resultset. Veranderd dat dus liever in $result of iets dergelijks.
Dit ga ik proberen mee te nemen.
Afhankelijk van hoe oud je applicatie is is dit wellicht ook een uitgelezen moment om alle code eens door te lichten, in plaats van enkel database-gerelateerde 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
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
<?php
// Database connectie maken
$db = mysqli_connect("localhost", "gebruiker", "paswoord", "database");
// Als de database connectie mislukt, genereer een error
if (!$db) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
// Style pagina invoegen
echo '<link rel="stylesheet" type="text/css" href="CSS/Winkelwagen.css" />';
// Alle items uit de db halen
$resultaat = mysqli_query($db, "SELECT * FROM ARTIKEL ORDER BY Naam ASC");
// Als query is gelukt
if($resultaat)
{
// Als er items zijn
if(mysqli_num_rows($resultaat) > 0) // als het aantal rijen in de tabel groter is dan 0
{
echo '<div class="wrapper">';
echo "<table border=1>";
echo "<tr><td><b>Artikelnummer</b></td><td><b>Naam</b></td><td><b>Afbeelding</b></td><td><b>Prijs</b></td><td><b>Meer</b></td></tr>"; //bovenste regel van de tabel
//lus uitvoeren om producten in een tabel weer te geven
while($rec = mysqli_fetch_array($resultaat)) // zolang er nog artikelen in de database zitten, deze lus uivoeren
{
echo '<div class="artikel_e">';
// Product id
echo '<input type="hidden" name="product_id" value="'.$rec['Artikel_id'].'" />';
// Product id_intern
echo '<tr><td>'.$rec['Artikel_id_intern'].'</td>';
// De titel
echo '<td>'.$rec['Naam'].'<br /></td>';
// De afbeelding
echo '<td><img alt="" src="CSS/IMAGES/PRODUCTEN/'.$rec['Afbeelding1'].'" /><br /></td>';
// Prijs
echo '<td>€ '.$rec['Prijs_vkp'].'<br /></td>';
// Meer details
echo '<td><a href="Product.php?Pid='.$rec['Artikel_id'].'">Meer details</a></td></tr>';
echo '</div>';
}
echo "</table>";
echo '</div>';
}
// Anders
else
{
// Geen producten
echo 'Er zijn nog geen producten in de etalage.';
}
}
// Anders
else
{
// Mysql error opvangen
echo 'Er is een fout opgetreden bij de query. <br />';
echo mysqli_error();
}
mysqli_close($db);
?>
// Database connectie maken
$db = mysqli_connect("localhost", "gebruiker", "paswoord", "database");
// Als de database connectie mislukt, genereer een error
if (!$db) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
// Style pagina invoegen
echo '<link rel="stylesheet" type="text/css" href="CSS/Winkelwagen.css" />';
// Alle items uit de db halen
$resultaat = mysqli_query($db, "SELECT * FROM ARTIKEL ORDER BY Naam ASC");
// Als query is gelukt
if($resultaat)
{
// Als er items zijn
if(mysqli_num_rows($resultaat) > 0) // als het aantal rijen in de tabel groter is dan 0
{
echo '<div class="wrapper">';
echo "<table border=1>";
echo "<tr><td><b>Artikelnummer</b></td><td><b>Naam</b></td><td><b>Afbeelding</b></td><td><b>Prijs</b></td><td><b>Meer</b></td></tr>"; //bovenste regel van de tabel
//lus uitvoeren om producten in een tabel weer te geven
while($rec = mysqli_fetch_array($resultaat)) // zolang er nog artikelen in de database zitten, deze lus uivoeren
{
echo '<div class="artikel_e">';
// Product id
echo '<input type="hidden" name="product_id" value="'.$rec['Artikel_id'].'" />';
// Product id_intern
echo '<tr><td>'.$rec['Artikel_id_intern'].'</td>';
// De titel
echo '<td>'.$rec['Naam'].'<br /></td>';
// De afbeelding
echo '<td><img alt="" src="CSS/IMAGES/PRODUCTEN/'.$rec['Afbeelding1'].'" /><br /></td>';
// Prijs
echo '<td>€ '.$rec['Prijs_vkp'].'<br /></td>';
// Meer details
echo '<td><a href="Product.php?Pid='.$rec['Artikel_id'].'">Meer details</a></td></tr>';
echo '</div>';
}
echo "</table>";
echo '</div>';
}
// Anders
else
{
// Geen producten
echo 'Er zijn nog geen producten in de etalage.';
}
}
// Anders
else
{
// Mysql error opvangen
echo 'Er is een fout opgetreden bij de query. <br />';
echo mysqli_error();
}
mysqli_close($db);
?>
hop naar het volgende :-)
Gewijzigd op 23/11/2015 21:58:27 door Nick VanRossem