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



A voir également:

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.
0
hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Et qu'affichent les debug qur je t'ai donné ??
0
hm0123 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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