Affichage et modification avec PDO
Fermé
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
-
30 juin 2016 à 19:06
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 3 juil. 2016 à 10:45
flo39400 Messages postés 596 Date d'inscription mardi 8 avril 2008 Statut Membre Dernière intervention 9 septembre 2021 - 3 juil. 2016 à 10:45
A voir également:
- Affichage et modification avec PDO
- Logiciel modification pdf - Guide
- Suivi de modification word - Guide
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Modification liste déroulante excel - Guide
2 réponses
Dialga.Java
Messages postés
38
Date d'inscription
vendredi 6 mai 2016
Statut
Membre
Dernière intervention
5 octobre 2016
11
30 juin 2016 à 19:13
30 juin 2016 à 19:13
Tu peux le faire facilement avec un formulaire de type post ou get
puis tu récupère ça en haut de ta page :
$text contiendras le contenus de l'input.
le htmlspecialschars(...); sert à te protégé des failles "XSS"
<form method="post" action=""> <input type="text" name="input" /> </form>
puis tu récupère ça en haut de ta page :
$text = htmlspecialschars($_POST['input']);
$text contiendras le contenus de l'input.
le htmlspecialschars(...); sert à te protégé des failles "XSS"
jordane45
Messages postés
38144
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 avril 2024
4 650
30 juin 2016 à 23:59
30 juin 2016 à 23:59
Bonjour,
Comme l'indique Dialga il te faut un Formulaire. (il a par contre oublié le bouton).
Donc un truc du genre :
NB : Pour la connexion à la bdd (fichier cnxBdd.php) tu peux t'inspirer du code suivant :
NB² : Pour la récupération "propre" des variables j'ai utilisé l'écriture ternaire.
voir ici pour l'explication :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
NB4 : Pour ce qui est d'afficher les données présentes dans la table.. pour ça il te suffit de faire une requête de type SELECT puis de boucler dessus pour afficher les données.
Par exemple :
Voila.. tu as toutes les billes.
Comme l'indique Dialga il te faut un Formulaire. (il a par contre oublié le bouton).
Donc un truc du genre :
<?php //Affichage des éventuelles erreurs php error_reporting(E_ALL); //connexion à ta BDD //ici tu fais un include de ton fichier de connexion en PDO // par exemple : require_once "cnxBdd.php"; //ensuite tu récupères PROPREMENT les variables AVANT de les utiliser $input = !empty($_POST['input']) ? $_POST['input'] : NULL; //traitement si input n'est pas vide (modification) if($input){ //insertion en BDD $sql = " UPDATE photo SET tonchamp=:input"; $datas = array(":input"=>$input); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <html> <head> <title>ton site</title> </head> <body> <!-- Formulaire--> <form action="" method="post"> <input name="input" value=""> <input type="submit" name="valider" value="envoyer"> </form> </body> </html>
NB : Pour la connexion à la bdd (fichier cnxBdd.php) tu peux t'inspirer du code suivant :
<?php //fichier de connexion à la bdd : cnxBdd.php try{ $bdd =new PDO('mysql:host=localhost;dbname=mabdd;charset=utf8', 'user', 'password'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
NB² : Pour la récupération "propre" des variables j'ai utilisé l'écriture ternaire.
voir ici pour l'explication :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
NB4 : Pour ce qui est d'afficher les données présentes dans la table.. pour ça il te suffit de faire une requête de type SELECT puis de boucler dessus pour afficher les données.
Par exemple :
//Données en BDD $sql = " SELECT * FROM photo "; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute() ; //on stocke le résultat dans un array $result = $requete->fetchAll(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } // pour l'affichage.. on boucle sur l'array foreach($result as $row){ //ici tu code l'affichage..... // par exemple : print_r($row); }
Voila.. tu as toutes les billes.
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
3 juil. 2016 à 10:21
3 juil. 2016 à 10:21
Bonjour a vous jordane45,
je remarque que vous m'aider souvent.
Donc je vais essayer tous cela je reviens bientôt et merci pour tout.
je remarque que vous m'aider souvent.
Donc je vais essayer tous cela je reviens bientôt et merci pour tout.
flo39400
Messages postés
596
Date d'inscription
mardi 8 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2021
21
3 juil. 2016 à 10:45
3 juil. 2016 à 10:45
Voila ce que j'ai tester, bon j'ai une fatal erreur mais il affiche le résultat quand même.
Après le résultat que j'ai:
stdClass Object ( [id] => 1 [position] => 0 [adresse] => personnage WOW.jpeg [text] => [format] => height='800' width='700' )
( ! ) Fatal error: Cannot use object of type stdClass as array in C:\wamp64\www\final\news\admin.php on line 69 Call Stack #TimeMemoryFunctionLocation10.0004244208{main}( )...\admin.php:0
Car vu que dans la table "photo" il y a plusieurs champs il faudrait faire un while avec les différant éléments et mettre dans
<select name="" size="1">
<option><?php echo $row['position'] $row['adresse'] $row['text']; ?></option>
</select>
Et un bouton pour valider le champs sélectionner et formulaire de modification sur $row['position'] $row['adresse'] $row['text'] $row['format']
<?php session_start(); //Affichage des éventuelles erreurs php error_reporting(E_ALL); //connexion à ta BDD //ici tu fais un include de ton fichier de connexion en PDO // par exemple : require_once "cnxBdd.php"; //ensuite tu récupères PROPREMENT les variables AVANT de les utiliser $input = !empty($_POST['input']) ? $_POST['input'] : NULL; //traitement si input n'est pas vide (modification) if($input){ //insertion en BDD $sql = " UPDATE photo SET tonchamp=:input"; $datas = array(":input"=>$input); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } //Données en BDD $sql = " SELECT * FROM photo "; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute() ; //on stocke le résultat dans un array $result = $requete->fetchAll(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } // pour l'affichage.. on boucle sur l'array foreach($result as $row){ //ici tu code l'affichage..... // par exemple : print_r($row); } ?> <html> <head> <title>Administration</title> </head> <body> <!-- Formulaire--> <form action="" method="post"> <input name="input" placeholder="Adresse" value="<?php echo $row['adresse']; ?>"> <input type="submit" name="valider" value="envoyer"> </form> </body> </html>
Après le résultat que j'ai:
stdClass Object ( [id] => 1 [position] => 0 [adresse] => personnage WOW.jpeg [text] => [format] => height='800' width='700' )
( ! ) Fatal error: Cannot use object of type stdClass as array in C:\wamp64\www\final\news\admin.php on line 69 Call Stack #TimeMemoryFunctionLocation10.0004244208{main}( )...\admin.php:0
Car vu que dans la table "photo" il y a plusieurs champs il faudrait faire un while avec les différant éléments et mettre dans
<select name="" size="1">
<option><?php echo $row['position'] $row['adresse'] $row['text']; ?></option>
</select>
Et un bouton pour valider le champs sélectionner et formulaire de modification sur $row['position'] $row['adresse'] $row['text'] $row['format']
1 juil. 2016 à 00:00
Ceci n'est plus nécéssaire puisqu'en PDO tu peux (dois ...) utiliser les requêtes préparées.
Par contre.. tu peux l'utiliser éventuellement lors de l'AFFICHAGE (pas pour l'insertion en bdd)