probleme update PHP de la base MySQL

Eléphanteau du PHP | 26 Messages

23 févr. 2012, 08:56

Bonjour,

J'ai un soucis avec ce bout de code, je n'arrive pas a faire la commande pour modifier les données dans ma base de données.

Siq eulqu'un avait une idée de ce que je dois faire, ca serait super sympa.

Merci d'avance.

Bonne journée.

<?php
include('connexion.php');


if(isset($_GET['act'])) $act = $_GET['act']; // si $_GET['act'] est présent tu le récupères
else $act = '';
if(isset($_GET['id'])) $id = $_GET['id']; //si $_GET['id']; est présent tu le récupères
else $id = 0;
	 /////////////////////////////////////   update /////////////////////////////////////////////////////////////// 

if($act == 'modif') // ça veut dire qu'on a cliqué sur le bouton 'modif' d'une ligne, et on a récupéré l'id avec $_GET['id']
{
// je crée un formulaire avec les données récupérées de la table (SELECT) grâce à (WHERE id = $id)
?>
<?php
$result = mysql_query("SELECT * FROM offre WHERE id = $id");
 
while($data = mysql_fetch_array($result))
 {

 ?>


<form action="index.php?id=<?php echo $id;?>" method="post">
   <p>nom:<br/>
    <input name="nom2" size="35" value="<?php echo $data["nom"] ;?>" type="text"/>
   </p>
 
   <p>prix:<br/>
    <input name="prix2" size="35" value="<?php echo $data["prix"] ;?>" type="text"/>
   </p> 
 
   <p>offre:<br/>
    <input name="offre2" size="35" value="<?php echo $data["offre"] ;?>" type="text"/>
   </p> 
  
   <p>description:<br/>
   <textarea name="description2" rows="10" cols="50" ><?php echo $data["description"] ;?></textarea>
  </p>
  
      <p>image:<br/>
    <input name="image2" size="35" value="<?php echo $data["image"] ;?>" type="text"/>
   </p> 
 
   <input name="Modifier" value="Modifier" type="submit"/>
   <input name="Effacer" value="Effacer" type="reset"/>
 
</form>
<?php
 }
 
 $nom2 = $data['nom'];

$prix2 = $data['prix'];

$offre2 = $data['offre'];

$description2 = $data['description'];

$image2 = $data['image'];




$result = mysql_query(" UPDATE offre SET nom2='$nom2', prix2='$prix2', offre2='$offre2', description2='$description2', image2='$image2' WHERE id = '$id'");
 

//Si il y a une erreur, on crie ^^
if (!$result) 
{
    die('Requête invalide : ' . mysql_error());
}
else {
//Si tout va bien, on informe que la modification est faite
echo '<p>La modification à été effectué avec succès. <a href=index.php>Retour à l\'administration.</a></p>';
}


//////////////////////////////  suppression
 
}
else if($act == 'supprimer') // ça veut dire qu'on a cliqué sur le bouton 'supprimer' d'une ligne, et on a récupéré l'id avec $_GET['id']
{
// je fais la requête de suppression grâce à l'id (DELETE FROM matable WHERE id = $id)

  $sql = "DELETE FROM offre WHERE ID = ".$id ;
  
  if(mysql_query($sql))
  {
   		 echo '<body onLoad="alert(\'Ev&eacute;nement supprim&eacute; avec succ&egrave;s.\')">'; 
		 header("refresh:1; URL = 'index.php' ");
  }
  else
  {
    	 echo '<body onLoad="alert(\'Erreur dans la suppression.\')">'; 
		 header("refresh:1; URL = 'index.php' ");
  }

}
else // si act n'est ni modif ni supprimer, tu affiches la table
{
echo '<table border="1">';
echo '<tr><th>Nom<th>Prix<th>offre<th>description<th>Modifier</th><th>Supprimer</th></tr>';
// tu fais ta requête SELECT pour récupérer tous les users
$sql = 'SELECT * FROM offre';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
//dans la boucle while pour traiter ton résultat de requête, tu crées tes lignes :
while($data = mysql_fetch_assoc($req))


echo '<tr><td>' . htmlentities($data['nom']) . '</td><td>' .htmlentities($data['prix']) .'</td><td>' .htmlentities($data['offre']) .'</td><td>' . htmlentities($data['description']) .'</td><td>' . '<a href="index.php?act=modif&id='.$data['id'].'">modifier user = '.$data['id'].'</a>' . '</td><td>' . '<a href="index.php?act=supprimer&id='.$data['id'].'">supprimer user = '.$data['id'].'</a></td>'. '</tr><tr>' ;
}
echo '</table>';


?>



Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 févr. 2012, 09:58

salut,

il faut que tu fasse une validation de formulaire correct.
d'où sortent :
$nom2 = $data['nom'];
$prix2 = $data['prix'];
$offre2 = $data['offre'];
$description2 = $data['description'];
$image2 = $data['image'];

de la requête SQL au dessus, que tu n'exécute pas parce que tu ne pas dans le if ?

=> Comment récupérer les valeurs d'un formulaire

essai de repenser ton code en terme de structure
si truc alors
si tel champs existe dans $_POST ALORS validation du formulaire et requete update
sinon ...
etc etc

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 26 Messages

24 févr. 2012, 10:02

Bonjour moogli,

merci de ta réponse, mais je ne voi rien sur la manière de faire mon update, ou bien je dois vraiment être très fatigué 8-|

C'est vraiment sur la partie la que j'ai du mal.

Si tu pouvais éclairer ma lanterne.

Merci d'avance.

Bonne journée

Eléphant du PHP | 179 Messages

24 févr. 2012, 10:47

As tu une erreur quelconque ou juste la base de donnée qui ne se met pas à jour ?

ViPHP
xTG
ViPHP | 7331 Messages

24 févr. 2012, 11:26

Bonjour moogli,

merci de ta réponse, mais je ne voi rien sur la manière de faire mon update, ou bien je dois vraiment être très fatigué 8-|

C'est vraiment sur la partie la que j'ai du mal.

Si tu pouvais éclairer ma lanterne.

Merci d'avance.

Bonne journée
mooglit'a redirigé vers une notion que d'après ton code tu ne connais pas et ne comprends pas.
Avant de penser à un quelconque update il faut penser à comment fonctionne un formulaire. ;)
Pourquoi dis-t-on que tu as des lacunes ?
Car là tu tentes de faire un update avant même d'avoir posté le formulaire...
Et même si on poste le formulaire tu ne récupères jamais les données envoyées.