COMMENT MODIFIER DES DONNEES D'UNE TABLE PHP
JU_37 Messages postés 2 Statut Membre -
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>