webshop tutorial mysql updaten naar mysqli

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick VanRossem

Nick VanRossem

04/11/2015 23:25:37
Quote Anchor link
Geachten,

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)
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
<?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 . ']');
}

?>


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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = mysql_query("SELECT * FROM producten ORDER BY titel ASC");

zou ik dan aanpassen naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = mysqli_query($db,"SELECT * producten ORDER BY titel ASC");


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 hulp

PHP hulp

05/05/2024 04:46:57
 
Frank Nietbelangrijk

Frank Nietbelangrijk

05/11/2015 00:32:29
Quote Anchor link
Ja als je op mysqli wilt overstappen dan doe je dat op ALLE mysql(i)_* functies. dus ook op mysql(i)_query.

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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= $db->query("SELECT * producten ORDER BY titel ASC");
?>


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.
 
Nick VanRossem

Nick VanRossem

05/11/2015 11:05:13
Quote Anchor link
Hoi Frank, bedankt voor je feedback.

Dit ga ik proberen mee te nemen.
 
Thomas van den Heuvel

Thomas van den Heuvel

05/11/2015 14:25:30
Quote Anchor link
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.
 
Nick VanRossem

Nick VanRossem

23/11/2015 21:51:17
Quote Anchor link
even een update met betrekking tot het index bestand. Dit werkt al fijn :-)

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
<?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>&euro; '.$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
 



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.