birou Posté 28 Juin 2006 Posté 28 Juin 2006 Bonjour! Voila j'ai un probleme avec ma requete :c'est à dire Lors de la suppression, si le mot en question est sur plusieurs numéros, ça supprime un seul numéro à la fois, alors qu'il faut tous les supprimer . Voici une partie du script. if(isset($_REQUEST['supprimer'])) { $sql="delete from type_msg_recus where ref_type_msg=".$_REQUEST['ref_type_msg']; mysql_query($sql); print("<div id=grosse_surbrillance>Synonyme supprimé avec succès.</div>"); } ?> . Merci de votre comprehension
Bourinho Posté 28 Juin 2006 Posté 28 Juin 2006 Salut, cela pourrait peut-être venir de l'absence de guillemets dans ta requête, essaie : if(isset($_REQUEST['supprimer'])) { $sql='delete from type_msg_recus where ref_type_msg=\''.$_REQUEST['ref_type_msg'].'\''; mysql_query($sql); print("<div id=grosse_surbrillance>Synonyme supprimé avec succès.</div>"); } ?> Sinon, je dois avouer que je ne vois pas... A+
birou Posté 28 Juin 2006 Auteur Posté 28 Juin 2006 Merci de répondre ! Non il ne sagit pas des guillemets. En fait le probleme est que plusieurs mots sont insérés dans la base avec differents numéros et là ma requete supreime un mot a la fois et je voudrai faire une requete qui tous les mots a la fois mais je sais pas comment . Si vous avez une idée
Bourinho Posté 28 Juin 2006 Posté 28 Juin 2006 Salut, ce que tu me dis, c'est que ça marche si tu fais une boucle avec tout le temps la même requête dedans??? A+
Jeromnimo Posté 28 Juin 2006 Posté 28 Juin 2006 (modifié) En changeant ton ref_type_message=xxxx par ref_type_message IN (xxxx) ? EDIT : Je crois que j'ai compris de travers ce que tu veux faire... :-/ Tu n'as pas un morceau de ta table sql ? ca serait plus clair :-P Modifié 28 Juin 2006 par Jeromnimo
Bourinho Posté 28 Juin 2006 Posté 28 Juin 2006 (modifié) Salut, t'as essayé en précisant la table dans le WHERE??? Genre comme suit : if(isset($_REQUEST['supprimer'])) { $sql="delete from type_msg_recus where type_msg_recus.ref_type_msg=".$_REQUEST['ref_type_msg']; mysql_query($sql); print("<div id=grosse_surbrillance>Synonyme supprimé avec succès.</div>"); } ?> Je ne sais pas si cela peut changer quelque chose...mais ton problème est tellement bizarre... que je te propose des solutions...bizarres!!! A+ PS : Je viens de lire ce qui suit sur ce site Le seul cas pour lequel cet ordre peut ne pas aboutir est lorsque la suppression viole la contrainte d'intégrité référentielle. Il est en effet absurde de vouloir supprimer un client si les factures relatives à ce client n'ont pas été préalablement supprimées. Ne serais tu pas dans ce cas par hasard??? Modifié 28 Juin 2006 par Bourinho
birou Posté 28 Juin 2006 Auteur Posté 28 Juin 2006 +--------------+----------+---------------+------+---------------+----------------------+--------+-----------+-----------+-------------+ | ref_type_msg | type_msg | numeros_appel | smsc | categorie_msg | id_categorie_service | statut | text_info | avec_code | synonyme_de | +--------------+----------+---------------+------+---------------+----------------------+--------+-----------+-----------+-------------+ | 2074 | test3 | 5002020 | 5 | TELVOT | 294 | 1 | | 1 | a | | 2072 | test3 | 7455 | 3 | ANNUAIRE | 13 | 1 | | 1 | a | | 2071 | test3 | 6060 | 4 | TELVOT | 309 | 1 | | 1 | a | | 2070 | test3 | 5002020 | 5 | TELVOT | 294 | 1 | | 1 | a | | 2066 | test3 | 5005555 | 2 | ANNUAIRE | 9 | 1 | | 1 | a | | 2067 | test3 | 6715555 | 1 | ANNUAIRE | 9 | 1 | | 1 | a | | 2069 | test3 | 5005555 | 2 | ANNUAIRE | 9 | 1 | | 1 | a | | 2073 | test3 | 6715555 | 1 | ANNUAIRE | 9 | 1 | | 1 | a | | 2075 | test3 | 6060 | 4 | TELVOT | 309 | 1 | | 1 | a | | 2068 | test3 | 7455 | 3 | ANNUAIRE | 13 | 1 | | 1 | a | voici ma table mais je suprimer test3 avec cette requete il le fait un par un alors je vous une requete qui suprime tous a la fois
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Sauf erreur de ma part, il me semble que c'est sur le champ type_msg que tu dois faire ta suppression, et non sur le champ ref_type_msg ? non ?
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 En fait j'ai essayé avec le champs type_msg mais cela n'a pas marché .
Bourinho Posté 29 Juin 2006 Posté 29 Juin 2006 (modifié) Salut, Quand tu dis, ça n'a pas marché, ca renvoit une erreur ou bien ça fait quelquechose mais pas ce que tu veux...(et dans ce cas, qu'est ce que cela fait...) A+ PS : Je suis de l'avis de Jeromnimo... il va falloir s'occuper du champs type_msg!!! (J'avais même pas fait gaffe à ça...) Modifié 29 Juin 2006 par Bourinho
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Si tu pouvais afficher le nombre de lignes affectées par la requete : http://fr.php.net/manual/fr/function.mysql-affected-rows.php Histoire de savoir si la requete plante deja, ou si elle passe ?
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 (modifié) Vous savez j'ai fait mysql_affected_rows mais il m'envoit une erreur de ce genre Parse error: parse error, unexpected T_STRING in /usr/local/apache/htdocs/interfaces_admin/administration/php.php on line 85. J'avais essayé de faire une boucle cela n'a pas marché Modifié 29 Juin 2006 par birou
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Si t'as une erreur de ce type, ça veut dire que c'est au niveau php que ca a foiré, donc que t'as oublié un point virgule ou un truc du genre... Et concernant la question de Bourinho, ta requete a fonctionné ou Mysql t'as renvoyé une erreur ?
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 C a n'a pas fonctionné et quand je fais une boucle ca ne fonctionne pas non plus mais il me renvois une erreur en plus : Warning:mysql is not valide argu.................. de ce genre
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Si on avait l'erreur en entier ça serait beaucoup mieux quand même ;-) Et sinon tu as testé ta requete sur table directement (via PhpMyAdmin par exemple) ? Elle réalise bien ce que tu souhaites ?
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 Quand je fais sur phpMyAdmin par exemple delete from type_msg_recus where type_msg='test3'; ca efface tout ca marche nikel par contre dans le fichier ca marche pas . je sais pl :nonono koi faire
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Donc ca veut dire que tu as un soucis avec la connexion sql... Le warning ce serait pas un "invalid ressource link par hasard ?" Il faut l'erreur complete sinon on y arrivera pas :-P
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 voila l'erreur qu'il me renvoit : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/apache/htdocs/interfaces_admin/administration/php.php on line 86
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Ce qui veut dire que tu essayes de faire un fetch_array a priori sur une ressource de resultat mysql qui ne contient pas de données (une requete qui renvoie rien quoi...) mais je vois pas pourquoi tu as un tefch_array ??? C'est ta solution avec une boucle c'est ca ?
Bourinho Posté 29 Juin 2006 Posté 29 Juin 2006 (modifié) Salut, Essaye d'abord sans la variable dans ta requête... Remplace ta variable comme tu l'as fait pour mettre ta requête dans PHPMyAdmin... Si on arrive à faire cela, il suffira de remplacer par la suite... Mais c'est vrai que cela ressemble à un point virgule manquant... ou à des guillemets manquants dans la requête (qu'il faut échapper s'il est nécessaire de le rappeler...) A+ Modifié 29 Juin 2006 par Bourinho
Jeromnimo Posté 29 Juin 2006 Posté 29 Juin 2006 Bien reviens à la solution simple de départ et fait un echo de ta requete, deja pour voir ce que ca donne... Et derriere le echo tu mets eventuellement un affected_rows pour verifier si ca a fonctionné ou pas....
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 ca affiche cela: ("Lignes effacées : %d\n", mysql_affected_rows()); apres le echo que j'ai mis
Kent Posté 29 Juin 2006 Posté 29 Juin 2006 (modifié) Bonjour birou, $sql="delete from type_msg_recus where type_msg_recus.ref_type_msg=".$_REQUEST['ref_type_msg']; mysql_query($sql); et si tu mettez un asterisque ? $sql="delete * from type_msg_recus where type_msg_recus.type_msg=".$_REQUEST['ref_type_msg']; mysql_query($sql); si tu mets la clause where type_msg_recus.type_msg=".$_REQUEST['ref_type_msg']; ca ne peut peut pas marché car chaque reference est differente il est donc logique qu'il supprime que celle indiqué ( et donc qu'une seule... ) me trompe-je ? Modifié 29 Juin 2006 par Kent
birou Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 Merci kent ! J'ai essayé ta requete mais ca n'a rien donnée dsl
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant