Bonjour,

J'ai un petit souci avec mon code PHP. Enfin, pas tout à fait le miens mais celui de mon professeur Je suis encore étudiante et je me suis mise au PHP que très récemment. Excusez donc du peu de compétence dont je risque de faire preuve ces prochains mois.

Notre projet est de créer un site web sur un sport de combat. Très gentiement, on nous a conseillé de nous pencher sur le PHP Objet. Si pour les fonctions DELETE/INSERT il n'y a aucun souci, je rencontre des difficultés pour l'UPDATE.

Voilà donc mes fichiers :

fichier controleur_pays
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
 
if (isset($_GET['action']))
{
	$action = $_GET['action'];
}
 
switch ($action)
{
(...) <--- je vous épargne l'inutile

case "modifier":
            include("./page/pays/modifier.php");
            break;
        case "traitement_modif":
            $pays = new Pays();
            $pays->setNomPays($_POST['NOMPAYS']);
            $pays->setNomNationalite($_POST['NOMNATIONALITE']);
            $pays->setIdPays($_POST['IDPAYS']);
            
            
            $pdo = new PdoPays();
            $pdo->update($pays);
            break;

(...)
}
fichier PdoPays
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
class PdoPays extends PdoConnect {
 
public function update(pays $pays) {
 
        $this->open();
        $sql = "UPDATE `pays` SET NOMPAYS= ?, NOMNATIONALITE= ? WHERE IDPAYS=?";
 
        $prep = $this->pdo->prepare($sql);
 
        $prep->bindValue(1, $pays->getNomPays(), PDO:: PARAM_STR);
        $prep->bindValue(2, $pays->getNomNationalite(), PDO:: PARAM_STR);
        $prep->bindValue(3, $pays->getIdPays(), PDO:: PARAM_INT);
 
 
        var_dump($prep);
        $prep->execute();
    }
}
fichier modifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
 
$IdPays = $_GET['IdPays'];
$oPDO = new PdoPays();
 
$pays = $oPDO->readOne($IdPays);
 
 
echo "<form id='formulaire' action='index.php?route=pays&action=traitement_modif' method='post'>";
 
echo "<label>modifiez un Nom de Pays</label><br />";
echo "<input type='text' name='NOMPAYS' value='" . $pays->getNomPays() . "' /><br />";
 
echo "<label>Entre un Nom de Nationalite</label><br />";
echo "<input type='text' name='NOMNATIONALITE' value='" . $pays->getNomNationalite() . "'/>";
 
 
echo "<input type='hidden' name='IDPAYS' value='" . $pays->getIdPays() . "' />";
echo "<input type='submit'  value='Valider'>";
 
echo "</form>";
 
echo "<br /><br /><br /><br /><br />";
?>
Si j'arrive à récupérer le pays et la nationalité déjà mise dans ma table, je n'arrive pas à les modifier. Lorsque je clique sur VALIDER ma requête donne ça - > object(PDOStatement)[4]
public 'queryString' => string 'UPDATE `pays` SET NOMPAYS= ?, NOMNATIONALITE= ? WHERE IDPAYS=?' (length=62)

Je ne comprends vraiment pas pourquoi... --" Help ?