J aimerai retrouves mes donnees saisi dans la BDD

Résolu/Fermé
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017 - Modifié le 28 juil. 2017 à 11:34
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017 - 31 juil. 2017 à 01:28
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
<?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>



3 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 juil. 2017 à 19:10
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.
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
26 juil. 2017 à 21:16
bonsoir,
je crois avoir deja fait ca
vois un peut quelque code de reference

if(isset($_GET['action'])){
if($_GET['action']=='add'){

et la suite apres</form>

<?php

}else if($_GET['action']=='modify'){

}else if($_GET['action']=='delete'){


et pour finir il ya ca

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

je crois pour plus clarification c est mieuc de check le code au dessus un peu plus en details!!
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
26 juil. 2017 à 21:47
je te suggère de commencer avec des exercices beaucoup plus simples, par exemple avec un bouton radio dans un formulaire, et un code php qui utilise l'option choisie.
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.
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
Modifié le 28 juil. 2017 à 11:34
merci pour votre proposition mais je crois j ai un peu du ma a faire comprendre
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
<?php
session_start();

if(isset($_SESSION['username'])){}
if(isset($_GET['action'])){ 
}
?>
<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>

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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
27 juil. 2017 à 02:54
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 :

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

0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
27 juil. 2017 à 10:25
merci pour le code mais je viens d essaie ca n affiche toujour rien du tout
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
Modifié le 27 juil. 2017 à 13:00
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>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
27 juil. 2017 à 18:16
Tu n'as tenu compte d'aucun des conseilles que je t'ai donné dans mon code précédent...
Je ne ré interviendrai pour t'aider que lorsque tu nous auras mis ton code à jour en respectant les conseils prodigués (voir les commentaires dans mon code)
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
27 juil. 2017 à 18:39
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

<?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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
27 juil. 2017 à 18:42
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...... )
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
30 juil. 2017 à 21:10
Tu t'assures que tu as les valeurs suivantes dans ton fichier php.ini
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 )
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
30 juil. 2017 à 22:09
merci vraiment puisque je vois au moin une evolution mais de que je remplis le formulaire,il ya une nouvelle page qui s ouvre avec le formulaire mais aussi avec les donnees saissi alors que normalement le donnee devait est sauvegarde dans ma BDD
Note:je aussi ajoute (charset=utf8')
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
30 juil. 2017 à 22:20
Regarde dans ta bdd... les donnees s'y enregistrent non ??
Apres... quel comportement exact veux tu ? ( en details...)
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
30 juil. 2017 à 22:41
dans ma bdd il ya pas les donnees mais s affiche sur la meme pas du formulaire apres avoir submit!
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017
30 juil. 2017 à 23:40
Et qu'affichent les debug qur je t'ai donné ??
0
hm0123 Messages postés 34 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 31 juillet 2017 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
30 juil. 2017 à 23:48
les code passe et s affiche meme le donnees saissi sur la page meme du formulaire mais dans la bdd il ya rien du tout
0