WHERE avec MySQL

Fermé
Benou - 16 avril 2009 à 17:18
 Benou - 16 avril 2009 à 18:19
Bonjour à tous,

j'ai passé mon aprem a triffouiller mon code sans jamais trouver l'erreur :

echo 'Upload successful '.$id_album_form.','.mysql_real_escape_string($fichier).' !';
$insertion = "INSERT INTO album(a_cover_front) WHERE (id_album = '$id_album_form' ) VALUES('".mysql_real_escape_string($fichier)."')" or die('Erreur SQL !'.mysql_error());
mysql_query($insertion); // insert the name of the cover and the name of the file

Voila l'echo m'affiche bien l'i_album_form correspondant a l'id de l'album sélectionné ainsi que le mysql_real_escape_string($fichier) correspondant au nom du fichier.
Tout se passe bien je n'obtient aucune erreur, mais le problème cest que le nom du fichier ne s'inscrit pas dans le base de donnée.
Une idée?
Merci d'avance :)

7 réponses

Utilisateur anonyme
16 avril 2009 à 18:10
Tu as bien fait :
$insertion="UPDATE album SET a_cover_front='cover_avant' WHERE (id_album = 3)";
mysql_query($insertion);

Si je ne me trompe pas bien sûr. ^^ Les guillemets doivent pas être à la bonne place, mais j'ai un peu de mal avec ça.
1
Wouhhhou Bravo Bravo ca marche avec l'update que tu m'as fournit !!!

Merci a vous tous pour vos reponses

Bonne soirée :)
0
Tu peux montrer ce que contient $fichier en faisant un echo.
0
Merci de votre reponse.
L'erreur ne vient pas de la car qd je l'enleve, le resultat ne s'inscrit tjs pas dans la base de donnée:
$insertion = "INSERT INTO album(a_cover_front) WHERE (id_album = '$id_album_form' ) VALUES('cover_avant')" or die('Erreur SQL !'.mysql_error());

J'ai aussi tester avec id_album= 3, qui correspondant à un ID d'un album dans ma base de donnée, et ca ne marche pas non plus (rien ne s'inscrit ds la base de donnée alors que la requete est, come avant, bien effectué) :

$insertion = "INSERT INTO album(a_cover_front) WHERE (id_album = '3' ) VALUES('cover_avant')" or die('Erreur SQL !'.mysql_error());

Merci :)
0
Il me semble qu'il n'est pas possible d'effectuer un where comme cela.

La requete devrait plutot ressembler à cela :

INSERT INTO album (a_cover_front)
SELECT a_covert_front
FROM album
WHERE id_album = '3'
0
$insertion = "INSERT INTO album(a_cover_front) SELECT a_covert_front FROM album WHERE (id_album = '3' ) VALUES('cover_avant')" or die('Erreur SQL !'.mysql_error());

Pareil, tout se passe bien, mais tjs rien dans ma bdd.
Pour info mes champs de ma bdd sont :
id_album int(11) Non aucune auto_increment Affiche les valeurs distinctes
a_cover_front varchar(50) utf8_general_ci Non aucune

Je suis quasi sur que j'ai un probleme de syntaxe car quand j'enleve la commande WHERE ca marche... mais je n'arrive pas a trouver lequel...

Merci encore de votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tu as un auto incremente donc essaye cela :

$insertion = "INSERT INTO album('',a_cover_front) SELECT a_covert_front FROM album WHERE (id_album = '3' ) VALUES('cover_avant')" or die('Erreur SQL !'.mysql_error());
0
Je viens d'essayer, mais pareil, aucune erreure, mais rien ne s'affiche ds la bdd... etrange etrange..

Merci de ton soutient :)
0
Utilisateur anonyme
16 avril 2009 à 17:51
Bonsoir,
C'est la première fois que je vois un where dans une insertion. C'est pas plutôt un update que tu veux faire ?
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
16 avril 2009 à 17:53
Le mysql_error() se met après le mysql_query(), pas derrière la chaine sql.

Et reprends la requête de Rhiannon30 sans rien ajouter derrière.
0
Merci de vos reponses, donc voila quand je test avec :
$insertion = "INSERT INTO album('',a_cover_front) SELECT a_covert_front FROM album WHERE (id_album = '3' ) VALUES('cover_avant')";
mysql_query($insertion) or die('Erreur SQL !'.mysql_error());

Ca me sort une erreur: Erreur SQL !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 ''',a_cover_front) SELECT a_covert_front FROM album WHERE (id_album = '3' ) VALUE' at line 1

Quand je test sans les '' :
$insertion = "INSERT INTO album(a_cover_front) SELECT a_covert_front FROM album WHERE (id_album = '3' ) VALUES('cover_avant')";
mysql_query($insertion) or die('Erreur SQL !'.mysql_error());

Erreur: 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 'VALUES('cover_avant')' at line 1

Merci
0
Benou > Benou
16 avril 2009 à 18:02
J'ai essayer de faire un update, car oui enfaite cest ca que je recherche car ma table contient deja l'id de l'album, je veux juste rajouter derrier l'emplacement de la cover, mais ca ne marche pas non plus... merci
0