8796 sujets

Développement web côté serveur, CMS

salut!
je viens vous poser mon problème, ça fait deux jour que je bloque, je comprends pas, je recommence plusieurs fois mais toujours pas!
Je voudrais modifier ma table galerie (je fais une édition d'informations sur les photos d'une galerie) avec une description qui vient d'un input, et la catégorie de la photo qui vient d'une liste select (c'est donc pas un varchar mais un entier). J'ai donc repris le même système que j'avais utiliser pour modifier des pages de mon site: avec Update. Or là ça ne marche pas! je comprends pas!
Voilà mon code de traitement (simplifié, j'ai tout retiré les vérifications pour me recentrer sur ce qui pose problème!)

if(!empty($_POST)){
	extract($_POST);
	$sql="UPDATE galerie SET description='$description', categorie_id='$categorie_id' WHERE id='$id'";
	$req = mysql_query($sql) or die('Erreur SQL!<br/>'.$sql.'<br/>'.mysql_error());
}


Au cas ou que ça vienne d'ici, je vous mets ma liste select, qui récupère les données d'une table categories_img (le $categorie vient d'une autre requete qui a enregistré la catégorie actuelle de la photo dont on modifie les données):


<?php	
	echo "<select name='categorie_id'>\n";
	$sql="SELECT * FROM categories_img WHERE id=$categorie";
	$req = mysql_query($sql) or die('Erreur SQL!<br/>'.$sql.'<br/>'.mysql_error());
	$data=mysql_fetch_assoc($req);
		echo "<option value='{$data["id"]}'>{$data["titre"]}</option>\n";
					
	$sql="SELECT * FROM categories_img WHERE id<>$categorie";
	$req = mysql_query($sql) or die('Erreur SQL!<br/>'.$sql.'<br/>'.mysql_error());
	while($data=mysql_fetch_assoc($req)){
		echo "<option value='{$data["id"]}'>{$data["titre"]}</option>\n";
	}
	echo "</select>\n";
?> 


Un grand merci pour votre aide!
@+
Modifié par Baptiste08 (16 Mar 2010 - 20:42)
Salut,

Baptiste08 a écrit :
Or là ça ne marche pas!
C'est un peu vague : qu'est-ce que tu as comme erreur ?
Tu as tenté de faire un affichage de ta requête dans la page pour vérifier que les valeurs sont bonne puis de la tester dans phpmyadmin par exemple ?
salut!
alors en fait tout "marche bien": j'ai mit une redirection vers ma page général: ça me retourne bien à la bonne page, mais aucune modification n'a été faite! (même en regardant dans MAMP).
Si je retire la direction: ça reste sur la même page d'édition mais ça retire toutes les variables GET: donc ma age est vide d'informations!

++
Alors essayes de débugger :
if(!empty($_POST)){ 
    extract($_POST); 
    $sql="UPDATE galerie SET description='$description', categorie_id='$categorie_id' WHERE id='$id'"; 
    //$req = mysql_query($sql) or die('Erreur SQL!<br/>'.$sql.'<br/>'.mysql_error()); 
    die('requête SQL!<br/>'.$sql.'<br/>'.mysql_error()); 
}
D'où vient $id ?

Au passage il faut utiliser mysql_real_escape_string.
Modifié par Heyoan (16 Mar 2010 - 20:03)
le id vient de la ligne juste avant dsl: $id = $_GET['id'];
(si je met {$_GET['id']} à la place de $id, ça me met erreur:)
Erreur SQL!
UPDATE galerie SET description='essais', categorie_id='4' WHERE id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


++
Tu as essayé ce que je t'ai suggéré ? Parce qu'à mon avis l'erreur vient bien de cet id.
D'ailleurs quel est l'intérêt de passer l'id en GET via l'attribut action du FORM au lieu d'utiliser un INPUT hidden ?
Voilààà merci j'avais pas pensé au bouton caché:

<input type="hidden" name="id_cat" value="<?php echo $_GET['id']; ?>">

et dans ma requete ça donne:
$sql="UPDATE galerie SET description='$description', categorie_id='$categorie_id' WHERE id=$id_cat";

Merci!! Par contre je comprends pas pourquoi ça marchait avec mes autres éditions: j'ai le même systeme qui change des articles de mon site! va savoir...

MERCI!
@+