Modification de données [Résolu]

Signaler
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
Bonjour,
j'ai conçu une base de donnée que je veux faire des modifications mais mon code ne marche pas. j'arrive à faire afficher les données à modifier mais je ne peux pas les modifier s'il vous plaît aidez mois. voilà mon code:

<?php
require('connect/connect.php');
if(isset($_POST['bouton']))
{

$requete="UPDATE video_off SET titre='".$_POST['titre']."' ,chemin='".$_POST['chemin']."' WHERE id_video='".$_POST['id_video']."' ";
mysql_query($requete) or die(mysql_error());
header("Location:formulaire_making_lsvid.php");
}

//--------------requête de la fiche modif
$requete3="SELECT *FROM video_off  WHERE  id_video='".$_GET['id_video']."' " ;
$resultat3=mysql_query($requete3);
$video=mysql_fetch_array($resultat3);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<body>
<a href="articlesGestion.php?logout=ok" >Deconnexion</a>
<br/>

<form id="monform" name="form1" method="post" enctype="multipart/form-data" action="formulaire_modification_video.php">
  <p>
    <label>Vidéo : <input type="hidden" name="id_image" value="<?php echo $video['id_video']; ?>" >
    <?php echo $video['id_video']; ?>
    </label>
  </p>
  <p>
    <label>Titre :
    <input name="title" type="text" id="title"  value="<?php echo $video['titre']; ?>" size="30" />
</label>
  </p>
 <p>
 <label>Lien
  <input type="text" name="chemin" id="chemin" value="<?php echo $video['chemin'];?>" size="30" />
  </label>
  </p>
    <p>
    <label>
      <input type="submit" name="bouton"  value="Envoyer" />
    </label>
  </p>
</form>

</body>
</html>

4 réponses

Messages postés
33002
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juin 2021
351
Bonjour,

1 - Les balises de code sont à mettre AU NIVEAU du code ( pas sur tout le message).
J'ai édité ton message pour les remettre au bon endroit...


2 -
mon code ne marche pas. j'arrive à faire afficher les données à modifier mais je ne peux pas les modifier

Et qu'est-ce qui ne marche pas ?
- As-tu testé ta requête en direct dans ta BDD ? (fonctionne t-elle ?)
- As tu essayé de mettre des ECHO sur tes variables pour vérifier qu'elles sont bonnes ?

- As tu fais un ECHO de ta requête SQL ?

- As tu des messages d'erreur ?? si oui.. lesquels ???


Vu que tu nous dis que l'enregistrement de tes données ne fonctionnent pas.. je suppose que c'est uniquement cette partie du code qui ne marche pas :
if(isset($_POST['bouton']))
{

$requete="UPDATE video_off SET titre='".$_POST['titre']."' ,chemin='".$_POST['chemin']."' WHERE id_video='".$_POST['id_video']."' ";
mysql_query($requete) or die(mysql_error());
header("Location:formulaire_making_lsvid.php");
}


Donc.. déjà.. en reprenant mes remarques précédentes :
Qu'obtiens tu avec des ECHO ?

// On commence par  récupérer les variables passées en POST
$titre     = isset($_POST['titre'])?$_POST['titre']:'error';
$chemin = isset($_POST['chemin'])?$_POST['chemin']:'error';
$id_video= isset($_POST['id_video'])?$_POST['id_video']:'error';

if(isset($_POST['bouton']))
{

$requete="UPDATE video_off
                SET titre='".$titre."' 
                     ,chemin='".$chemin."' 
             WHERE id_video='".$id_video."' ";

// Affichage de la requête :
echo $requete;

mysql_query($requete) or die(mysql_error());

// Le temps de tester si ta requete fonctionne 
// on commente la redirection.
//header("Location:formulaire_making_lsvid.php");
}




PS: tu peux remplacer ces lignes de code :
  <label>Vidéo : <input type="hidden" name="id_image" value="<?php echo $video['id_video']; ?>" >


Par : (on enlève le Echo lorsque l'on assigne une valeur )
  <label>Vidéo : <input type="hidden" name="id_image" value="<?=$video['id_video']; ?>" >




Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Messages postés
33002
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juin 2021
351
Je pense avoir trouvé ton souci...
A moins que tu ne nous ais pas mis TOUT ton code...

<label>Vidéo : <input type="hidden" name="id_image" value="<?php echo $video['id_video']; ?>" >
    <?php echo $video['id_video']; ?>
    </label>


Que vaut : $video['id_video'] ?
Cette variable n'est pas initialisée ??

AU pire.. en reprenant ce que tu as fait juste au dessus.. çe devrait plutot être : .$_GET['id_video'] que tu devrais utiliser non ?

.. d'où l'interet d'initialiser TOUTES ses variables au début du script (c'est à dire, comme je l'ai fait pour tes variables post, récuperer toutes tes variables.. POST / GET ...puis dans ton script utiliser les variable plutot que de refaire des ..get ou des post un peu partout dans ton code.
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

j'applique le code que vous m'avez donné mais il ne marche pas.Il n'y a pas de message d'erreur mais je n'arrive pas à modifier les données. Merci
Messages postés
33002
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juin 2021
351
j'applique le code que vous m'avez donné
Tu peux nous montrer ?

Qu'est-ce que les variables POST t'affichent ?
Comment s'appel la page dans laquelle se trouve ton script ?
Est-ce bien la même chose que ce que tu as marqué dans ton form ? (action="formulaire_modification_video.php") ??
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

la page de mon script s'appelle formulaire_modification_video.php
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
salut,
déjà tu utilise mysql qui est obsolete maintenant, apprend à utiliser mysqli.

voici comment devrais se présenter ton début de script :
<?php
//require('connect/connect.php');
$DB = new mysqli('localhost', 'root', '****', 'mabase');

if(isset($_POST['update']) && isset($_POST['titre']) && isset($_POST['chemin']) && isset($_POST['id_video']))
{
  $sql = sprintf("
    UPDATE video_off
    SET
      titre='%s',
      chemin='%s'
    WHERE
      id_video=%d LIMIT 1",
    $_POST['titre'],
    $_POST['chemin'],
    $_POST['id_video']
  );
  if($result = $DB->query($sql))
  {
    header("Location:formulaire_making_lsvid.php?id=".$_POST['id_video']);
  } 
  else
  {
    header("location:formulaire_making_lsvid.php?error=sql");
  }
}


//--------------requête de la fiche modif
$video = array(
  "id_video" => 0,
  "titre"    => null,
  "chemin"   => null
);
      
if(isset($_GET['id_video']))
{
  $sql=sprintf("
    SELECT *
    FROM video_off  
    WHERE  
      id_video=%d 
    LIMIT 1",
    $_GET['id_video']
  );
  if($result = $DB->query($sql))
  {
    if($result->num_rows == 1)
    {
      $video = $result->fetch_assoc();
    } 
  }
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8"/>
  <title>Document sans nom</title>
</head>
<body>
  <a href="articlesGestion.php?logout=ok" >Deconnexion</a>
  <br/>

<fieldset>
  <legend>Modification Vidéo</legend>
  <form id="video" method="post" action="formulaire_modification_video.php">
  <input type="hidden" name="update" value="1"/>
  <input type="hidden" name="id_image" value="<?php echo $video['id_video']; ?>"/>
  <p>
    <label>Vidéo id :</label>
    <span><?php echo $video['id_video']; ?></span>
  </p>
  <p>
    <label>Titre :</label>
    <input type="text" name="titre" id="titre"  value="<?php echo $video['titre']; ?>" size="30" />
  </p>
  <p>
    <label>Lien :</label>
    <input type="text" name="chemin" id="chemin" value="<?php echo $video['chemin'];?>" size="30" />
  </p>
  <p>
    <input type="submit" name="bouton" id="bouton" value="Envoyer" />
  </p>
  </form>
<fieldset>
</body>
</html>


________________________________________________________
[ besoin de câbles audio, vidèo, informatique pas cher ?]
Messages postés
33002
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 juin 2021
351
@F0xi : Même si je suis d'accord sur le fait que Mysql est déprécié par rapport à Mysqli et que je préfère PDO ... je ne vois pas en quoi ... ce changement dans son script va résoudre ses soucis.....

Moi j'attends de voir :
1 - Qu'il nous montre son script ( modifié suite à me remarques)
2 - QU'il nous indique ce que lui affiche les ECHO que je lui ai fait ajouté.
3 - Qu'il me dise si il a testé la requête DIRECTEMENT dans sa BDD et donc si sa requête fonctionne....

@gbammelet : Il serait bien.. qu'une fois pour toutes... que lorsque l'on te propose des solutions (ou du moins des pistes de résolution) tu prennes le temps de nous répondre correctement A TOUTES nos questions.
Il n'y a que comme ça que nous pourrons t'aider.
Nous ne sommes, ni devant ton écran, ni dans ta tête.... il faut donc que tu fasses le nécessaire pour nous faire parvenir les informations sur ce site.
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
Erreur détécté -> formulaire le titre etait name="title" au lieu de titre et erreur dans une des requetes (oublis d'un espace avant FROM) etc.