Probleme insert into
Résolu
yoshiro
Messages postés
496
Date d'inscription
Statut
Membre
Dernière intervention
-
yoshiro Messages postés 496 Date d'inscription Statut Membre Dernière intervention -
yoshiro Messages postés 496 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Probleme insert into
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Activer touche insert sur ASUS UX32A - Forum Clavier
- Monitor will go into standby mode traduction français ✓ - Forum Matériel & Système
45 réponses
Tu n'a pas la connexion a la base de donnée ?
https://www.commentcamarche.net/contents/784-php-bases-de-donnees
https://www.commentcamarche.net/contents/784-php-bases-de-donnees
c'est toujours pareil !!
Mais comment on fait un insert into en incluant des condition !!
S'IL VOUS PLAIT !!
Mais comment on fait un insert into en incluant des condition !!
S'IL VOUS PLAIT !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$supprime =mysql_query("DELETE FROM articles WHERE article_id=".$mess['article_id']) or exit(mysql_error());
=>
$supprime =mysql_query("DELETE * FROM articles WHERE article_id=".$mess['article_id'].";") or exit(mysql_error());
=>
$supprime =mysql_query("DELETE * FROM articles WHERE article_id=".$mess['article_id'].";") or exit(mysql_error());
et bien la codition where est la pour ca !!
je vois pas d autres solutions ou alors expose nous ton probleme plus en détail ;)
je vois pas d autres solutions ou alors expose nous ton probleme plus en détail ;)
j'ai fait ceci
Mais ça marche pas !!!
$supp = "INSERT INTO supprimer (id, titre, nom_categorie, article, pseudo, date) SELECT article_id, titre, nom_categorie, article, pseudo, date FROM articles Where article_id=".$mess['article_id'] or die('Erreur SQL !'.$supp.'<br>'.mysql_error());
Mais ça marche pas !!!
Ton "or die('Erreur SQL !'.$supp.'<br>'.mysql_error());" n'a rien à faire là, faut le faire sur le mysql_query :
$supp = "INSERT INTO supprimer (id, titre, nom_categorie, article, pseudo, date) SELECT article_id, titre, nom_categorie, article, pseudo, date FROM articles Where article_id='".$mess['article_id'] ."'";
mysql_query($supp) or die(mysql_error());
au passage tavais un probleme de ' dans ta requete, dans ta clause where
$supp = "INSERT INTO supprimer (id, titre, nom_categorie, article, pseudo, date) SELECT article_id, titre, nom_categorie, article, pseudo, date FROM articles Where article_id='".$mess['article_id'] ."'";
mysql_query($supp) or die(mysql_error());
au passage tavais un probleme de ' dans ta requete, dans ta clause where
$supp = "INSERT INTO supprimer (`id`, `titre`, `nom_categorie`, `article`, `pseudo`, `date`)
SELECT articles.article_id, articles.titre, articles.nom_categorie,articles.article, articles.pseudo, articles.date FROM articles
HAVING `article_id`='".$mess['article_id']."';";
//Attention aux ` et pas ' : ` sert pour le nom d un champ tandis que 'sert pour une valeur (texte ou autre)
// Attention !! il y a 3 guillemets apres article_id = ' " . $mess[..]. " ' ; " ;
tient moi au jus ;)
SELECT articles.article_id, articles.titre, articles.nom_categorie,articles.article, articles.pseudo, articles.date FROM articles
HAVING `article_id`='".$mess['article_id']."';";
//Attention aux ` et pas ' : ` sert pour le nom d un champ tandis que 'sert pour une valeur (texte ou autre)
// Attention !! il y a 3 guillemets apres article_id = ' " . $mess[..]. " ' ; " ;
tient moi au jus ;)
j'ai essayer mais ça me retourne la derniere valeur
ça me renvoie la dernière valeur et ce message d'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 'Where article_id=18/'' at line 1
Et avec le code que tu ma donner
ça insert tous les champs !!
<td align='center'><form method='POST' action='voirarticle.php'> <input type='radio' name='iden' id='iden' value='supprime'/> <input type='hidden' name='artid' value=".$mess['article_id']."/>"); if(isset($_POST['enregistrer'])) { $ide = trim($_POST['artid']); if(isset($_POST['iden'])) { $supp = "INSERT INTO supprimer (id, titre, nom_categorie, article, pseudo, date) VALUES (NULL, '".$mess['titre']."', '".$mess['nom_categorie']."', '".$mess['article']."', '".$mess['pseudo']."', '".$mess['date']."') Where article_id=".$ide."'" ;mysql_query($supp) or die(mysql_error()); if(mysql_query($supp)) { $supprime =mysql_query("DELETE FROM articles WHERE article_id=".$mess['article_id']) or exit(mysql_error()); } } }
ça me renvoie la dernière valeur et ce message d'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 'Where article_id=18/'' at line 1
Et avec le code que tu ma donner
$supp = "INSERT INTO supprimer (`id`, `titre`, `nom_categorie`, `article`, `pseudo`, `date`) SELECT articles.article_id, articles.titre, articles.nom_categorie,articles.article, articles.pseudo, articles.date FROM articles HAVING `article_id`='".$mess['article_id']."';"; mysql_query($supp) or die(mysql_error());
ça insert tous les champs !!
Bonjour
Pas de WHERE dans un INSERT !
le WHERE teste une condition sur un enregistrement, or cet enregistrement n'existe pas encore puisque tu cherches à l'insérer. Quelle conditions veux-tu vérifier sur un enregistrement qui n'existe pas ? Ça ne veut rien dire !
Par contre, tu peux vérifier (en PHP) tout ce que tu veux avant et choisir de faire ou de ne pas faire un INSERT
C'est vraiment un INSERT que tu cherches à faire, ou un UPDATE ?
Pas de WHERE dans un INSERT !
le WHERE teste une condition sur un enregistrement, or cet enregistrement n'existe pas encore puisque tu cherches à l'insérer. Quelle conditions veux-tu vérifier sur un enregistrement qui n'existe pas ? Ça ne veut rien dire !
Par contre, tu peux vérifier (en PHP) tout ce que tu veux avant et choisir de faire ou de ne pas faire un INSERT
C'est vraiment un INSERT que tu cherches à faire, ou un UPDATE ?
bonjour,
le but c'est quand l'utilisateur veut supprimer un article, cet article soit insérer dans la table supprimer avec un nouveau id et que ce même article soit supprimer de la table article !!
le but c'est quand l'utilisateur veut supprimer un article, cet article soit insérer dans la table supprimer avec un nouveau id et que ce même article soit supprimer de la table article !!
Ton but ne change rien aux règles de mysql ! Il ne peut pas y avoir de WHERE dans un INSERT, parce que ça ne voudrait rien dire. D'ailleurs peux-tu me dire quel est l'intérêt du Where article_id=".$mess['article_id'] dans ta requête d'insertion ? Par définition, le WHERE restreint ta requête aux lignes qui vérifient ta condition, et ta ligne n'existe pas encore. Ne mets pas le Where et c'est tout.
Au passage, je viens de voir que tu faisais deux fois l'INSERT (enfin, tu le ferais 2 fois s'il ne plantait pas) :
Il y a bien deux appels à mysql_query($supp), là.
Le test if(mysql_query($supp)) ne sert à rien : si le 1er appel rend faux, le die est exécuté et le script s'arrête. Donc pas besoin de if pour tester s'il faut continuer : c'est déjà fait.
Au passage, je viens de voir que tu faisais deux fois l'INSERT (enfin, tu le ferais 2 fois s'il ne plantait pas) :
;mysql_query($supp) or die(mysql_error()); if(mysql_query($supp))
Il y a bien deux appels à mysql_query($supp), là.
Le test if(mysql_query($supp)) ne sert à rien : si le 1er appel rend faux, le die est exécuté et le script s'arrête. Donc pas besoin de if pour tester s'il faut continuer : c'est déjà fait.
et oui, comme je l ai préciser plus haut, c est pas un where dans le insert pour tester une condition.. mais having ;)
Je m'étais basé (tard hier soir...) sur la requête du message 11 de yoshiro. Ce que j'ai écrit est vrai, mais ne va sûrement pas résoudre son problème. S'il enlève le Where de la requête du message 11, il n'y a plus d'erreur mysql mais ça ne fait sans doute pas ce qu'il veut.
Après avoir relu depuis le post 1 et fait quelques essais, je suis d'accord avec jeangilles (post 9) sauf que si tu ne veux pas conserver l'id comme tu le dis dans le message 13, il ne faut pas le mettre dans la liste des champs :
$supp = "INSERT INTO supprimer ( titre, nom_categorie, article, pseudo, date) SELECT titre, nom_categorie, article, pseudo, date FROM articles Where article_id='".$mess['article_id'] ."'";
Mais il faudra bien donner une valeur au champ id. Soit il est en auto-increment et il n'y a rien à faire, soit il y a encore une modification pour donner une valeur (mais laquelle ?)
$supp = "INSERT INTO supprimer ( titre, nom_categorie, article, pseudo, date) SELECT titre, nom_categorie, article, pseudo, date FROM articles Where article_id='".$mess['article_id'] ."'";
Mais il faudra bien donner une valeur au champ id. Soit il est en auto-increment et il n'y a rien à faire, soit il y a encore une modification pour donner une valeur (mais laquelle ?)
"je suis d'accord avec jeangilles (post 9)"
Ha ben jcommencais a me dire que je rouillais avec le temps ... surtout que jvoyais pas ce qui n'allait pas ^^
Ha ben jcommencais a me dire que je rouillais avec le temps ... surtout que jvoyais pas ce qui n'allait pas ^^
mais j'ai besoin du where car l'utilisateur choisi quel article qu'il veut supprimer a travers un formulaire
je recupere l'id de l'article qu'il veut supprimer. Donc c'est pour ça que j'ai du where ou si il y a une autre méthode plus simple je l'accepte.
while( $mess = mysql_fetch_array($article) ) { echo("<tr> <td align='center'>".$mess['article_id']. "</td> <td align='center'>".$mess['titre']. "</td> <td align='center'>".$mess['nom_categorie']. "</td> <td align='center'>".$mess['pseudo']. "</td> <td align='center'>".$mess['date']. "</td> <td align='center'><a href='modifart.php?arteid=".$mess['article_id']."'><img src='imgs/admin/edit.png' title='Modifier article' border='0'/></a></td> <td align='center'><a href='regart.php?arteid=".$mess['article_id']."'><img src='imgs/admin/copy.png' title='Voir article' border='0' /></a></td> <td align='center'><form method='POST' action='voirarticle.php'> <input type='radio' name='iden' id='iden' value='supprime'/> "); .......
je recupere l'id de l'article qu'il veut supprimer. Donc c'est pour ça que j'ai du where ou si il y a une autre méthode plus simple je l'accepte.