Modification de données

Résolu
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
- Modifié par jordane45 le 28/02/2014 à 13:08
f0xi
Messages postés
4205
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
12 mars 2022
- 28 févr. 2014 à 18:07
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

jordane45
Messages postés
35808
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
358
Modifié par jordane45 le 28/02/2014 à 13:20
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
0
jordane45
Messages postés
35808
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
358
28 févr. 2014 à 13:39
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.
0
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

28 févr. 2014 à 14:10
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
0
jordane45
Messages postés
35808
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
358
28 févr. 2014 à 14:19
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") ??
0
gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015

28 févr. 2014 à 14:30
la page de mon script s'appelle formulaire_modification_video.php
0
f0xi
Messages postés
4205
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
12 mars 2022
37
Modifié par f0xi le 28/02/2014 à 18:07
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 ?]
0
jordane45
Messages postés
35808
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 juillet 2022
358
28 févr. 2014 à 16:35
@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.
0
f0xi
Messages postés
4205
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
12 mars 2022
37
Modifié par f0xi le 28/02/2014 à 18:08
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.
0