Kan niet verder met UPDATE function

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ayrton Martins

Ayrton Martins

09/03/2015 14:43:23
Quote Anchor link
Hallo,

Ik ben bezig met een kleine CMS voor een schoolproject en we moeten hiervoor OOP PHP gebruiken, dus geen procedural.
Waar ik hulp bij nodig heb is de UPDATE function. Ik heb een openingstijden sectie die uit de database word gehaald in het dashboard, en ik wil hem via het dashboard met een form en php updaten zodat hij in de database ook geupdated word. Het probleem is dat ik niet weet hoe ik verder moet aangezien ik nog niet zo ver ben met OOP, en op internet kan ik het ook niet duidelijk vinden.

Als er verder nog opmerkingen of tips zijn, laat het weten, alles is welkom!

Dit heb ik tot nu toe:

Dashboard.php

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
<?php session_start();
 
//Check for errors
error_reporting(E_ALL);
ini_set("display_errors", 1);

// Require
require('classes/users.class.php');
require('classes/openingstime.class.php');


//Setters
$user = new User();
$user->setusername($_POST["username"]);
$user->setpassword($_POST["password"]);
$user->login_check();

$openingstime = new Openingstime();
?>


<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>

<body>
<div id="container">
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
<?php
                    ini_set('display_errors', 'On');
                    error_reporting(E_ALL);

                    if (isset($_SESSION["login"]))
                    {

                        echo "
                        <h3>Welkom, "
.$_SESSION['username'].".</h3>".
                        "<a href='logout.php'>Uitloggen</a><br><br>";}
                        else
                        {
                            echo "
                            <h3>Je bent nog niet aangemeld.</h3>
                            Je kunt <a href='login.php'>hier</a> inloggen.
                            "
;
                        }

                ?>


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
<?php

                    $result
= $openingstime->getOpeningstime();
                    echo '<form action="" method="post">';
                
                       foreach($result as $key => $value) {
                           //echo $value['openingstime_id'];
                        echo $value['day'] . " ";
                        echo '<input type="text" name="'.$value['openingstime_id'].'" value="' .$value['opentime'].'" />';
                    };


                    echo '<input type="submit" name="submit" value="Wijzig"></form>';

                ?>

</div>
</body>
</html>

openingstime.class.php

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
<?php

class Openingstime {
    
    //Properties
    private $day;
    private $opentime;
    private $mysqli;

    //Methods
    public function __construct() {
            $this->mysqli = new mysqli("localhost", "root", "root", "rijwielenverhuur");
    }


    public function getOpeningstime() {
        $result = $this->mysqli->query("SELECT * FROM openingstime");
        $arr = array();
        
        while($row = $result->fetch_array()) {
            $arr[] = $row;
        }


        return $arr;
    }


    public function editOpeningstime() {
        foreach ($_POST as $id => $value) {
            // is $id wel een nummer
            $result = $this->mysqli->query("UPDATE openingstime SET day = $_POST['day'], opentime = $_POST['opentime'] WHERE openingstime_id = $id");    
        }
    }
}


?>
Gewijzigd op 09/03/2015 14:44:57 door Ayrton Martins
 
PHP hulp

PHP hulp

27/11/2024 02:23:18
 
Thomas van den Heuvel

Thomas van den Heuvel

09/03/2015 15:47:49
Quote Anchor link
Wellicht enkele pointers t.a.v. de organisatie van je code:
- vooral als je user class ook gebruik maakt van een database-connectie, zet code hiervoor in een aparte database-class, en creëer eenmalig een database-object en geef deze bij de creatie van objecten van classes die gebruik maken van een database door zodat je niet (zoals je in de Openingstime class (wellicht ook) doet) meerdere keren een connectie maakt met je database

- als je gebruik maakt van sessies, houd hierin dan bij dat iemand is ingelogd - het lijkt erop dat je in je dashboard elke pagina-access opnieuw inlogt? Of ik snap regel 13-16 niet.

- gebruik overal dezelfde character encoding:
* in je HTML-document via meta-tag en/of PHP-header
* in je database connectie via de _set_charset() functie
* in je database-tabellen
* in de data van je database-tabellen

- je drukt rechtstreeks waarden af in je value-property (maar deze kan HTML bevatten) en in je query (maar deze kan SQL bevatten) - het is verstandig om deze waarden te ontdoen van enige speciale betekenis in die "context" - gebruik hiervoor escape-functies: htmlspecialchars() voor HTML, mysqli_real_escape_string() voor de DATA-delen in je queries; dit heet ook wel "output escaping"; voor een correcte werking is het van groot belang dat de juiste character encoding wordt gebruikt

- administratieve instellingen (het starten van een sessie, het weergeven van fouten) die je overal gebruik zou je wellicht in een apart configuratie-bestand kunnen zetten dat je overal include
 



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.