J aimerai retrouves mes donnees saisi dans la BDD
Résolu
hm0123
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
hm0123 Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
hm0123 Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j ai un petit souci puisque j ai du mal a retrouve mes donnes saisi dans le fomulaire dans ma base de donnees et avant la page s affiche avec les le formulaire en question mais maintenant la page est vide je sais pas pourquoi!!
voila mes codes
j ai un petit souci puisque j ai du mal a retrouve mes donnes saisi dans le fomulaire dans ma base de donnees et avant la page s affiche avec les le formulaire en question mais maintenant la page est vide je sais pas pourquoi!!
voila mes codes
<?php session_start(); if(isset($_SESSION['username'])){ if(isset($_GET['action'])){ if($_GET['action']=='add'){ if(isset($_POST['submit'])){ $title=$_POST['title']; $description=$_POST['description']; $price=$_POST['price']; if($title&&$description&&$price){ try{ $db = new PDO('mysql:host=localhost;dbname=site-e-commerce', 'root','root'); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions } catch(Exception $e){ die('Une erreur est survenue'); } $insert = $db->prepare("INSERT INTO products (title, description, prices) VALUES('$title','$description','$price')"); $insert->execute(); }else{ echo'veuillez remplir tous les champs'; } } ?> <form action="" method="post"> <h3>Titre du produit :</h3><input type="text" name="title"> <h3>Description du produit :</h3><input type="text" name="Description"> <h3>Prix :</h3><input type="text" name="price"> <br/> <input type="submit" name="submit" value="submit"> </form> <?php }else if($_GET['action']=='modily'){ }else if($_GET['action']=='delete'){ }else{ die('une erreur s\'est produite.'); } }else{ } }else{ header('location: ../index.php'); } ?> <link href="../style/bootstrap.css" type="text/css" rel="stylesheet"/> <h1>Bienvenue,<?php echo $_SESSION['username']; ?></h1> <br/> <a href="?action=add" rel="nofollow noopener noreferrer" target="_blank">Ajouter un produit</a> <a href="?action=modify" rel="nofollow noopener noreferrer" target="_blank">Modifier un produit</a> <a href="?action=delete" rel="nofollow noopener noreferrer" target="_blank">Suprimer un produit</a>
A voir également:
- J aimerai retrouves mes donnees saisi dans la BDD
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Excel validation des données liste - Guide
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, si je devine bien ce que tu essaies de faire (et que tu n'expliques pas), tu devrais plutôt mettre l' action (ajouter, modifier, supprimer) comme une option dans ton formulaire, et récupérer l'option choisie via un $_POST.
Bonjour,
Tu as mal placé tes accolades,
Tu as mal orthographié "modify"
Tu as mal orthographié "description" par rapport au NAME de ton input
Tu n'as pas placé ta requête dans un bloc try/catch
Tu n'as pas activé l'affichage des erreurs php
bref... essaye ça :
Tu as mal placé tes accolades,
Tu as mal orthographié "modify"
Tu as mal orthographié "description" par rapport au NAME de ton input
Tu n'as pas placé ta requête dans un bloc try/catch
Tu n'as pas activé l'affichage des erreurs php
bref... essaye ça :
<?php //démarrage des sessions session_start(); //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display-errors','on'); //connexion à la bdd try{ $db = new PDO('mysql:host=localhost;dbname=site-e-commerce', 'root','root'); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions }catch(Exception $e){ echo 'Une erreur est survenue'; exit(); } //récupération PROPRE des variables AVANT de les utiliser $title = !empty($_POST['title']) ? $_POST['title'] : NULL ; $description = !empty($_POST['description']) ? $_POST['description'] : NULL; $price = !empty($_POST['price']) ? $_POST['price'] : NULL; $action = !empty($_GET['action']) ? $_GET['action'] : NULL; $username = !empty($_SESSION['username']) ? $_SESSION['username'] : NULL; if($username){ if(isset($_POST['submit'])){ //préférer un SWITCH au lieu de IF ELSIF ... switch($action){ case 'add': if($title&&$description&&$price){ $sql = "INSERT INTO products (title, description, prices) VALUES(:title,:description,:price)"; $datas = array(':title'=>$title,':description'=>$description,':price'=>$price); }else{ echo'veuillez remplir tous les champs'; } break; case 'modify': if($title&&$description&&$price){ $sql = "UPDATE products SET title = :title, description = :description , prices=:prices WHERE id=:id"; $datas = array(':title'=>$title,':description'=>$description,':price'=>$price,':id'=>$id); }else{ echo'veuillez remplir tous les champs'; } break; case 'delete': $sql = "DELETE FROM products WHERE id=:id"; $datas = array(':id'=>$id); break; default: echo "Action inconnue ! Erreur ! "; break; } if($sql){ //execution de la requete try{ $insert = $db->prepare($sql); $insert->execute($datas); }catch(Exception $e){ echo 'Erreur : ' .$e->getMessage(); } } } }else{ header('location: ../index.php'); exit(); //toujours mettre un EXIT après une redirection } if($action){ ?> <form action="" method="post"> <h3>Titre du produit :</h3> <input type="text" name="title" value="<?php echo $title; ?>"> <h3>Description du produit :</h3> <input type="text" name="description" value="<?php echo $description; ?>"> <h3>Prix :</h3> <input type="text" name="price" value="<?php echo $price; ?>"> <br/> <input type="submit" name="submit" value="submit"> </form> <?php } ?> <link href="../style/bootstrap.css" type="text/css" rel="stylesheet"/> <h1>Bienvenue, <?php echo $username;?></h1> <br/> <a href="?action=add" rel="nofollow noopener noreferrer" target="_blank">Ajouter un produit</a> <a href="?action=modify" rel="nofollow noopener noreferrer" target="_blank">Modifier un produit</a> <a href="?action=delete" rel="nofollow noopener noreferrer" target="_blank">Suprimer un produit</a>
salut,je viens de mettre mysqli a la place de PDO et sa passe mais je sais pas si mes code son en ordre puisque a chaque fois que j actulise on m ajoute dans ma BDD les dernier detail saissir dans le formulaire alors si possible de jette un coup d oeil sur sa merci
<?php
session_start();
$servrname = "localhost";
$dbusername = "root";
$dbpassword = "root";
$dbname = "site-e-commerce";
$title=$_POST['title'];
$description=$_POST['description'];
$price=$_POST['price'];
$conn = new mysqli($servrname, $dbusername, $dbpassword, $dbname);
if($conn->connect_error) {
die("Une erreur est survenue" .$conn->$connect_error);
}
$title = !empty($_POST['title']) ? $_POST['title'] : NULL ;
$description = !empty($_POST['description']) ? $_POST['description'] : NULL;
$price = !empty($_POST['price']) ? $_POST['price'] : NULL;
$action = !empty($_GET['action']) ? $_GET['action'] : NULL;
$username = !empty($_SESSION['username']) ? $_SESSION['username'] : NULL;
$sql = "INSERT INTO products (title, description, price) value ('$title','$description','$price')";
if ($conn->query($sql) === TRUE) {
echo "Thank you! your info has been entered into the database,you may close this window!";
} else {
echo "Error:" . sql . "<br>" . $conn->error;
}
$conn->close();
if(isset($_SESSION['username'])){}
if(isset($_GET['action'])){
}
if(isset($_SESSION['username'])){
}else{
header('location: ../index.php');
exit();
}
?>
<form action="" method="post">
<h3>Titre du produit :</h3><input type="text" name="title">
<h3>Description du produit :</h3><input type="text" name="description">
<h3>Prix :</h3><input type="text" name="price">
<br/>
<input type="submit" name="submit" value="submit">
</form>
<link href="../style/bootstrap.css" type="text/css" rel="stylesheet"/>
<h1>Bienvenue,<?php echo $_SESSION['username']; ?></h1>
<br/>
<a href="?action=add" rel="nofollow noopener noreferrer" target="_blank">Ajouter un produit</a>
<a href="?action=modify" rel="nofollow noopener noreferrer" target="_blank">Modifier un produit</a>
<a href="?action=delete" rel="nofollow noopener noreferrer" target="_blank">Suprimer un produit</a>
salut oft suis desole vraiment j ai belle et bien essai vos code que vous m avez donne mais s affiche une page vide je sais pas pourquoi alors que j ai vraiment beau essaie et voila pourquoi finir j essais de remplace le PDO pour le mysqli,
svp j ai vraiment besoin de votre aide sinon voila en bas vos codes
le probleme est s affiche une page vide
svp j ai vraiment besoin de votre aide sinon voila en bas vos codes
<?php
//démarrage des sessions
session_start();
//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display-errors','on');
//connexion à la bdd
try{
$db = new PDO('mysql:host=localhost;dbname=site-e-commerce', 'root','root');
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules
$db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions
}catch(Exception $e){
echo 'Une erreur est survenue';
exit();
}
//récupération PROPRE des variables AVANT de les utiliser
$title = !empty($_POST['title']) ? $_POST['title'] : NULL ;
$description = !empty($_POST['description']) ? $_POST['description'] : NULL;
$price = !empty($_POST['price']) ? $_POST['price'] : NULL;
$action = !empty($_GET['action']) ? $_GET['action'] : NULL;
$username = !empty($_SESSION['username']) ? $_SESSION['username'] : NULL;
if($username){
if(isset($_POST['submit'])){
//préférer un SWITCH au lieu de IF ELSIF ...
switch($action){
case 'add':
if($title&&$description&&$price){
$sql = "INSERT INTO products (title, description, prices) VALUES(:title,:description,:price)";
$datas = array(':title'=>$title,':description'=>$description,':price'=>$price);
}else{
echo'veuillez remplir tous les champs';
}
break;
case 'modify':
if($title&&$description&&$price){
$sql = "UPDATE products SET title = :title, description = :description , prices=:prices WHERE id=:id";
$datas = array(':title'=>$title,':description'=>$description,':price'=>$price,':id'=>$id);
}else{
echo'veuillez remplir tous les champs';
}
break;
case 'delete':
$sql = "DELETE FROM products WHERE id=:id";
$datas = array(':id'=>$id);
break;
default:
echo "Action inconnue ! Erreur ! ";
break;
}
if($sql){
//execution de la requete
try{
$insert = $db->prepare($sql);
$insert->execute($datas);
}catch(Exception $e){
echo 'Erreur : ' .$e->getMessage();
}
}
}
}else{
header('location: ../index.php');
exit(); //toujours mettre un EXIT après une redirection
}
if($action){
?>
<form action="" method="post">
<h3>Titre du produit :</h3>
<input type="text" name="title" value="<?php echo $title; ?>">
<h3>Description du produit :</h3>
<input type="text" name="description" value="<?php echo $description; ?>">
<h3>Prix :</h3>
<input type="text" name="price" value="<?php echo $price; ?>">
<br/>
<input type="submit" name="submit" value="submit">
</form>
<?php
}
?>
<link href="../style/bootstrap.css" type="text/css" rel="stylesheet"/>
<h1>Bienvenue,<?php echo $_SESSION['username']; ?></h1>
<br/>
<a href="?action=add" rel="nofollow noopener noreferrer" target="_blank">Ajouter un produit</a>
<a href="?action=modify" rel="nofollow noopener noreferrer" target="_blank">Modifier un produit</a>
<a href="?action=delete" rel="nofollow noopener noreferrer" target="_blank">Suprimer un produit</a>pener noreferrer" target="_blank">Suprimer un produit</a>
le probleme est s affiche une page vide
Tu sembles avoir du mal à comprendre le sens de mes mots ....
Que tu sois passé à Mysqli ... pourquoi pas.... mais... pour le reste de ton code tu sembles ne pas avoir tenu compte de mes remarques en commentaire du code que je t'avais donné.... (activation des erreurs php, récupération propre des variables AVANT de les utiliser...... )
Que tu sois passé à Mysqli ... pourquoi pas.... mais... pour le reste de ton code tu sembles ne pas avoir tenu compte de mes remarques en commentaire du code que je t'avais donné.... (activation des erreurs php, récupération propre des variables AVANT de les utiliser...... )
Tu t'assures que tu as les valeurs suivantes dans ton fichier php.ini
Et
Une fois ces valeurs modifiées dans ton fichier ini ... tu redémarres ton apache
Ensuite... tu reliras bien ton code....
Tu as encore des accolades qui ne sont pas fermées.....
Sans parler du code qui est en bordel complet......
Sachant que ce code :
fonctionne parfaitement......
Au passage... j'y ai mis un peu de debug .. que tu pourras retiré une fois que ta page fonctionnera totalement.
Ah..et... au passage ....Assures toi que tes fichiers sont bien encodés en UTF8 sans BOM.
(voir chapitre 1 ici : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 )
error_reporting = E_ALL & ~E_NOTICE
Et
display_errors = On
Une fois ces valeurs modifiées dans ton fichier ini ... tu redémarres ton apache
Ensuite... tu reliras bien ton code....
Tu as encore des accolades qui ne sont pas fermées.....
Sans parler du code qui est en bordel complet......
Sachant que ce code :
<?php //démarrage des sessions session_start(); //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display-errors','on'); //connexion à la bdd try{ $db = new PDO('mysql:host=localhost;dbname=site-e-commerce', 'root',''); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions }catch(Exception $e){ echo 'Une erreur est survenue ! ' . $e->getMessage(); exit(); } //récupération PROPRE des variables AVANT de les utiliser $title = !empty($_POST['title']) ? $_POST['title'] : NULL ; $description = !empty($_POST['description']) ? $_POST['description'] : NULL; $price = !empty($_POST['price']) ? $_POST['price'] : NULL; $action = !empty($_GET['action']) ? $_GET['action'] : NULL; $username = !empty($_SESSION['username']) ? $_SESSION['username'] : NULL; //---------------------------// //le temps des tests echo "<br>username : " . $username; echo "<br>action : " . $action; echo "<br><pre> Variables POST :<br>"; print_r($_POST); echo "</pre>"; //---------------------------// if($username){ if(isset($_POST['submit'])){ //préférer un SWITCH au lieu de IF ELSIF ... switch($action){ case 'add': if($title&&$description&&$price){ $sql = "INSERT INTO products (title, description, prices) VALUES(:title,:description,:price)"; $datas = array(':title'=>$title,':description'=>$description,':price'=>$price); }else{ echo'veuillez remplir tous les champs'; } break; case 'modify': if($title&&$description&&$price){ $sql = "UPDATE products SET title = :title, description = :description , prices=:prices WHERE id=:id"; $datas = array(':title'=>$title,':description'=>$description,':price'=>$price,':id'=>$id); }else{ echo'veuillez remplir tous les champs'; } break; case 'delete': $sql = "DELETE FROM products WHERE id=:id"; $datas = array(':id'=>$id); break; default: echo "Action inconnue ! Erreur ! "; break; } //---------------------------// //le temps des tests echo "SQL : " .$sql; echo "<br> DATAS :<br><pre>"; print_r($datas); echo "</pre>"; //---------------------------// if($sql){ //execution de la requete try { $insert = $db->prepare($sql); $insert->execute($datas); }catch(Exception $e) { echo 'Erreur : ' .$e->getMessage(); } } } }else{ echo " AUCUN USERNAME de présent !!!! ERREUR !!! Grosse erreur !!!!"; //le temps des tests ! //header('location: ../index.php'); //exit(); //toujours mettre un EXIT après une redirection } if($action){ ?> <form action="" method="post"> <h3>Titre du produit :</h3> <input type="text" name="title" value="<?php echo $title; ?>"> <h3>Description du produit :</h3> <input type="text" name="description" value="<?php echo $description; ?>"> <h3>Prix :</h3> <input type="text" name="price" value="<?php echo $price; ?>"> <br/> <input type="submit" name="submit" value="submit"> </form> <?php } ?> <link href="../style/bootstrap.css" type="text/css" rel="stylesheet"/> <h1>Bienvenue, <?php echo $username;?></h1> <br/> <a href="?action=add" rel="nofollow noopener noreferrer" target="_blank">Ajouter un produit</a> <a href="?action=modify" rel="nofollow noopener noreferrer" target="_blank">Modifier un produit</a> <a href="?action=delete" rel="nofollow noopener noreferrer" target="_blank">Suprimer un produit</a>
fonctionne parfaitement......
Au passage... j'y ai mis un peu de debug .. que tu pourras retiré une fois que ta page fonctionnera totalement.
Ah..et... au passage ....Assures toi que tes fichiers sont bien encodés en UTF8 sans BOM.
(voir chapitre 1 ici : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8 )
je crois avoir deja fait ca
vois un peut quelque code de reference
et la suite apres</form>
et pour finir il ya ca
je crois pour plus clarification c est mieuc de check le code au dessus un peu plus en details!!
ton formulaire n'est pas correct, ton code php n'est pas correct, et j'ai l'impression que tu ne connais pas les concepts de base de php et html.
mettre l'action (ajouter, modifier, supprimer) comme une option dans ton formulaire, cela signifie avoir cette option après le <form et avant le </form>. et pas utiliser des <a href.
voila un peut le code comment c'etait a la base avec que je puis ajoute la connection a la base de donnee est autres
et pour le href c est just le lien qui ramene sur sur la page de l action choisie
je crois mon vraie probleme est au niveau de database puisque le reste marche bien deja mais seulement que apres avoir mis de connexion a la bas de donnees sa ma pose probleme...je coir si vous essaiez le code nouveaux je je viens de mettre c est mieux