COMMENT MODIFIER DES DONNEES D'UNE TABLE PHP
JU_37 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
- COMMENT MODIFIER DES DONNEES D'UNE TABLE PHP
- Fuite données maif - Guide
- Modifier dns - Guide
- Table des matières word - Guide
- Table ascii - Guide
- Modifier liste déroulante excel - Guide
2 réponses
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>