Probleme uodate

Eléphanteau du PHP | 26 Messages

18 mai 2012, 18:58

Bonjour,

J'essaye de me battre avec un bout de code que j'ai fait, tout fonctionne sauf ma partie update.

Si quelqu'un savait me dire ou j'ai déconner.

Merci d'avance.
<?php

//variables de connexion
$serveur = "*******************";
$utilisateur = "*********************";  // 
$motdepasse = "******************";  
$base = "***************************";  

// stockage de la connexion 
$co = mysql_connect($serveur, $utilisateur, $motdepasse); // réalise la connexion

// test de la variable $co 
 if(!$co)	
 {  
    print "Connexion au serveur $serveur impossible<br>";
 }
 else
 {
	// connexion à la base 
	$cobase= mysql_select_db($base, $co); // charge la bdd
	
	// test de la variable $cobase
	if(!$cobase)	
	{  
		print "Erreur dans la sélection de la base $base !<br>";
		
		// fermeture de la connexion
		mysql_close($co);
	}
 }
?>

<?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="nom" size="35" value="<?php echo $data["nom"] ;?>" type="text"/>
   </p>
 
   <p>prix:<br/>
    <input name="prix" size="35" value="<?php echo $data["prix"] ;?>" type="text"/>
   </p> 
 
   <p>offre:<br/>
    <input name="offre" size="35" value="<?php echo $data["offre"] ;?>" type="text"/>
   </p> 
  
   <p>description:<br/>
   <textarea name="description" rows="10" cols="50" ><?php echo $data["description"] ;?></textarea>
  </p>
  
      <p>image:<br/>
    <input name="image" 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
 }
 
 $nom = $data['nom'];

$prix = $data['prix'];

$offre = $data['offre'];

$description = $data['description'];

$image = $data['image'];




$result = mysql_query(" UPDATE offre SET nom='$nom', prix='$prix', offre='$offre', description='$description', image='$image' 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>';


?>


Eléphanteau du PHP | 26 Messages

21 mai 2012, 09:27

Bonjour,

Personne a une petite idée??

Merci d'avance.

Bonne journée

ViPHP
ViPHP | 2577 Messages

21 mai 2012, 10:36

Bonjour,

Si tu nous indiquais un message d'erreur, on pourrait peut être t'aider.

A priori, il ne faut pas de quote autour de id et de prix (si ce ne sont pas des varchar). Mais le message doit te l'indiquer plus ou moins.

Eléphanteau du PHP | 26 Messages

16 juin 2012, 18:04

Bonjour,

Le problème justement, c'est que je n'ai pas de message d'erreur.

Il va me rendre fou ce update lol.

Merci d'avance à ceux qui prennent un peu de temps pour mon problème

Bonne soirée

Eléphant du PHP | 250 Messages

16 juin 2012, 18:43

Bonsoir,

comme ça à première vue, ton formulaire ne chargera pas d'image...il manque au moins
enctype="multipart/form-data"
dans l'entête du form, et pour charger une image c'est
<input type="file" name="nom" />
. Commence déjà par ça....
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Eléphanteau du PHP | 26 Messages

16 juin 2012, 20:03

Bonjour Boro64,

Merci de ta reponse, mais l'image ne me gene pas outre mesure, le problème me gêne plutot avec les autres champs.

Bonne soirée

Eléphant du PHP | 250 Messages

17 juin 2012, 14:59

Bonjour
Et au temps pour moi...A priori ce que te dit Mazarini devrait t'aider.
Et en écrivant:
$result = mysql_query(" UPDATE offre SET nom=".$nom.", prix=".$prix.", offre=".$offre.", description=".$description.", image=".$image." WHERE id = ".$id."");
Tu obtiens quelque chose?
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Mammouth du PHP | 2278 Messages

17 juin 2012, 15:14

Bonjour
Et au temps pour moi...A priori ce que te dit Mazarini devrait t'aider.
Et en écrivant:
$result = mysql_query(" UPDATE offre SET nom=".$nom.", prix=".$prix.", offre=".$offre.", description=".$description.", image=".$image." WHERE id = ".$id."");
Tu obtiens quelque chose?
et en ventilant t:
$requete  = " UPDATE offre SET nom='$nom', prix='$prix', offre='$offre', description='$description', image='$image' WHERE id = '$id'";
print "<br>===>$requete<===";
$result = mysql_query ($requete);
et en testant si besoin en ligne ou avec phpmyadmin ou autre la requête affichée?
Enfin,les ".$nom. " m'étonnent;
SET nom=".$nom.", prix=".$prix."
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD