COMMENT MODIFIER DES DONNEES D'UNE TABLE PHP

Fermé
JU_37 Messages postés 2 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 14 mars 2023 - 14 mars 2023 à 15:50
JU_37 Messages postés 2 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 14 mars 2023 - 14 mars 2023 à 20:05

Bonjour,mon probleme j'arrive pas a modifier les données pour une recette quand je modifie 1 sa modifie tout surement parce que j'ai pas associe de id mais je sais pas comment faire AIDEZ MOI SVP

voici mes codes 

index.PHP

<?php session_start(); ?>

<?php  include('variable.php');  ?>

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Site de Recettes - Page d'accueil</title>

    <link

        href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"

        rel="stylesheet"

    >

</head>

<body class="d-flex flex-column min-vh-100">

    <div class="container">

    <!-- Navigation -->

    <?php include_once('header.php'); ?>

    <!-- Formulaire de connexion -->

    <?php include_once('login.php'); ?>

     <?php  include('fonction.php'); ?>

        <h1>Site de Recettes !</h1>

        <!-- Plus facile à lire -->

        <?php foreach(getRecipes($recipes) as $recipe) : ?>

            <article>

                <h3><?php echo $recipe['titre']; ?></h3>

                <div><?php echo $recipe['description']; ?></div>

                <i><?php echo display_Author($recipe['auteur'], $users); ?></i>

            </article>

            <a href="modifRecette.php?id=<?php  echo $recipe['recipe_id']?>" class="btn btn-primary" >modifier recette</a>

        <?php endforeach ?>

    </div>

    <?php include_once('footer.php'); ?>

</body>

</html>

modifRecette.php

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

 <title>Site de recettes - Ajouter une Recette</title>

 <link

    href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"

    rel="stylesheet"

 >

</head>

<body class="d-flex flex-column min-vh-100">

  <div class="container">

<?php

include('mysql.php');


 

if(isset($_GET['id'])){

    $id = $_GET['id'];

    $recipesStatement = $db->prepare('SELECT * FROM recipes WHERE recipe_id =:id');

    $recipesStatement->execute(array('id' => $id));

    $recipes = $recipesStatement->fetch();

}



 

?>

<?php include_once('header.php'); ?>

    <h1>modifier une Recette</h1>

    <form  action="submit_modifRecette.php" method="post" >

        <div class="mb-3">

            <label for="titre" class="form-label">titre</label>

            <input type="text" class="form-control" id="titre" name="titre" value="<?php  echo $recipes['titre'] ?>" >

            <div id="titre-help" class="form-text">Donnez un titre court et précis.</div>

        </div>

        <div class="mb-3">

            <label for="description" class="form-label">Votre Recette</label>

            <textarea class="form-control" placeholder="Exprimez vous" id="description" name="description"><?php echo $recipes['description']; ?></textarea>

        </div>

        <button type="submit" class="btn btn-primary"  >modifier</button>

    </form>

    <br />

</div>

<?php include_once('footer.php'); ?>

</body>

</html>

submit-modifRecette.php

<?php

session_start();

include_once('user.php');

include_once('mysql.php');

include_once('variable.php');


 

if(!isset($_POST['titre']) ||  !isset($_POST['description']))

{

    $output ="vous devez entrer le titre et la description de la recette pour soumettre le formulaire ";

    return $output;

}

$titre = $_POST['titre'];

$recette =$_POST['description'];

 $insertRecette = 'UPDATE recipes  SET  titre= :titre, description= :description WHERE recipe_id =:id';

 $insert = $db -> prepare($insertRecette);

 $insert -> execute([

    'titre' => $titre,

    'description' => $recette,

  ]);


 

?>

<link

href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"

rel="stylesheet"

>

</head>

<?php include('header.php');  ?>

<h1>Recette modifié avec Succès !</h1>

<div class="card">

<div class="card-body">

<h5 class="card-title"> <?php echo $titre; ?></h5>

<p class="card-text"><b>email</b> : <?php echo $loggedUser['email']; ?></p>

<p class="card-text"><b>Description</b> : <?php echo $recette; ?></p>

</div>

</div>



 

Windows / Chrome 111.0.0.0

A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
14 mars 2023 à 16:53

Bonjour,

A l'avenir, merci de poster ton code correctement sur le forum en utilisant l'icone prévue à cet effet lors de la rédaction de tes messages.

En gros, ton code devrait ressembler à ça :

<?php
/**
 * modifRecette.php
 */
//démarrage session (toujours en premier ! )
session_start();

//affichage des éventuelles erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd
require_once('mysql.php');

//récupération propre des variables AVANT de les utiliser
$id = !empty($_GET['id']) ? intVal($_GET['id']) : null;

//récupération de la recette
if ($id) {
  try {
    $recipesStatement = $db->prepare('SELECT * FROM recipes WHERE recipe_id =:id');
    $recipesStatement->execute(array('id' => $id));
    $recipes = $recipesStatement->fetch();
  } catch (Exception $e) {
    echo "Erreur SQL .." . $e->getMessage();
  }
}
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Site de recettes - Ajouter une Recette</title>
    <link  href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"  rel="stylesheet" >
  </head>

  <body class="d-flex flex-column min-vh-100">
    <div class="container">
      <?php include_once('header.php'); ?>

      <h1>modifier une Recette</h1>
      <form  action="submit_modifRecette.php" method="post" >
        <input type="hidden" name="id" value="<?php echo $id; ?>">
        <div class="mb-3">
          <label for="titre" class="form-label">titre</label>
          <input type="text" class="form-control" id="titre" name="titre" value="<?php echo $recipes['titre'] ?>" >
          <div id="titre-help" class="form-text">Donnez un titre court et précis.</div>
        </div>

        <div class="mb-3">
          <label for="description" class="form-label">Votre Recette</label>
          <textarea class="form-control" placeholder="Exprimez vous" id="description" name="description"><?php echo $recipes['description']; ?></textarea>
        </div>
        <button type="submit" class="btn btn-primary"  >modifier</button>
      </form>
      <br />
    </div>
    <?php include_once('footer.php'); ?>
  </body>
</html>
<?php
/**
 * submit-modifRecette.php
 */
//démarrage session (toujours en premier ! )
session_start();

//affichage des éventuelles erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//connexion à la bdd
require_once('mysql.php');
require_once('user.php');
require_once('variable.php');

//récupération propre des variables AVANT de les utiliser
$id = !empty($_POST['id']) ? $_POST['id'] : NULL;
$titre = !empty($_POST['titre']) ? $_POST['titre'] : "";
$description = !empty($_POST['description']) ? $_POST['description'] : "";

if (!$titre || !$description) {
  $output = "vous devez entrer le titre et la description de la recette pour soumettre le formulaire ";
  exit;
}

//On regarde si il existe déjà en bdd.
// si oui, mise à jour, si non.. création
try {
  $recipesStatement = $db->prepare('SELECT * FROM recipes WHERE recipe_id =:id');
  $recipesStatement->execute(array('id' => $id));
  $recipes = $recipesStatement->fetch();
} catch (Exception $e) {
  echo "Erreur SQL .." . $e->getMessage();
}

if (!empty($recipes)) {
  //mise à jour
  try {
    $insertRecette = 'UPDATE recipes  SET  titre= :titre, description= :description WHERE recipe_id =:id';
    $insert = $db->prepare($insertRecette);
    $insert->execute([
        ':titre' => $titre,
        ':description' => $description,
        ':id' => $id
    ]);
  } catch (Exception $e) {
    echo "Erreur SQL .." . $e->getMessage();
  }
} else {
  //création
  try {
    $insertRecette = 'INSERT INTO recipes (titre, description ) VALUES (:titre,:description)';
    $insert = $db->prepare($insertRecette);
    $insert->execute([
        ':titre' => $titre,
        ':description' => $description
    ]);
  } catch (Exception $e) {
    echo "Erreur SQL .." . $e->getMessage();
  }
}
?>


?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Site de recettes - Ajouter une Recette</title>
    <link  href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"  rel="stylesheet" >
  </head>
  <body>
    <?php include('header.php'); ?>

    <h1>Recette modifié avec Succès !</h1>
    <div class="card">
      <div class="card-body">
        <h5 class="card-title"> <?php echo $titre; ?></h5>
        <p class="card-text"><b>email</b> : <?php echo $loggedUser['email']; ?></p>
        <p class="card-text"><b>Description</b> : <?php echo $recette; ?></p>
      </div>
    </div>

    <?php include_once('footer.php'); ?>
  </body>
</html>

0
JU_37 Messages postés 2 Date d'inscription mardi 14 mars 2023 Statut Membre Dernière intervention 14 mars 2023
14 mars 2023 à 20:05

Merci pour votre remarque et votre réponse en vrai je viens de commencer a apprendre PHP donc jje vois les modifications que vous avez apportées mais la comprehension n'est si evidente 

sinon merci pour votre aide

0