Page 1 sur 1

Probleme uodate

Posté : 18 mai 2012, 18:58
par amonite
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>';


?>


Re: Probleme uodate

Posté : 21 mai 2012, 09:27
par amonite
Bonjour,

Personne a une petite idée??

Merci d'avance.

Bonne journée

Re: Probleme uodate

Posté : 21 mai 2012, 10:36
par Mazarini
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.

Re: Probleme uodate

Posté : 16 juin 2012, 18:04
par amonite
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

Re: Probleme uodate

Posté : 16 juin 2012, 18:43
par Boro64
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....

Re: Probleme uodate

Posté : 16 juin 2012, 20:03
par amonite
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

Re: Probleme uodate

Posté : 17 juin 2012, 14:59
par Boro64
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?

Re: Probleme uodate

Posté : 17 juin 2012, 15:14
par sirakawa
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."