Aller au contenu

probleme avec mysql


Sujets conseillés

Posté

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

Posté

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+

Posté

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

Posté

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+

Posté (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é par Jeromnimo
Posté (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é par Bourinho
Posté

+--------------+----------+---------------+------+---------------+----------------------+--------+-----------+-----------+-------------+

| 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

Posté

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 ?

Posté

En fait j'ai essayé avec le champs type_msg mais cela n'a pas marché .

Posté (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é par Bourinho
Posté (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é par birou
Posté

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 ?

Posté

:( 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

Posté

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 ?

Posté

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 :nonono:

Posté

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

Posté

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

Posté

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 ?

Posté (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é par Bourinho
Posté

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....

Posté

ca affiche cela:

("Lignes effacées : %d\n", mysql_affected_rows());

apres le echo que j'ai mis

Posté (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é par Kent

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...