begin process at 2012 05 31 15:13:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

retour de DELETE en sql?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

retour de DELETE en sql?

mercredi 21 juillet 2004 à 09:54:31 | retour de DELETE en sql?

nlh

Bonjour bonjour,

j'ai une ptite question sql..., voila :
je voudrai connaitre le nombre d'adresses qui ont été supprimées lors d'une requete DELETE


par exemple :

ma_table

id type
| 1 | a |
| 2 | b |
| 3 | a |

je fait :
DELETE from ma_table where type='a'
et ce qui serai super bien ca serai que sa me retourne les enregistrements supprimés :

id type
| 1 | a |
| 3 | a |

ou au moins que sa me retourne le nombre d'enregistrements supprimés :

| 2 |


donc voila... et tout ca en passant par un minimum de requete, je ne peux pas faire un select avant pour compter ou afficher celle qui vont etre supprimés sinon sa serai trop simple... :)

merci d'avance si vous avez la soluc a ce probleme
a+
mercredi 21 juillet 2004 à 10:24:00 | Re : retour de DELETE en sql?

toniog1

Salut,
alors tu peut proceder ainsi si tu veux:

$requete=mysql_query("SELECT * FROM ma_table WHERE type='$a'");

$nbenregistrements=mysql_num_rows($requete);// cela te donne le nombre d'ocurence d'entrée ayant leur type égale à la variable $a dans ma_table

// Si tu souhaites obtenir les valeurs avant de les effacées et bien ici tu les extrait par exemple :




while($entree=mysql_fetch_array($test))
{

echo $entree["type"];//je reconnait quela n'a aucun interet d'afficher cette valeur mais je ne connait pas la structure de ta table et ce que tu souhaites afficher

}
//Voila et la maintenant tu delete

$requete=mysql_query("DELETE FROM ma_table WHERE type='$a'");

Si t'as besoin de plus de details n'hesite pas

@+

mercredi 21 juillet 2004 à 10:58:35 | Re : retour de DELETE en sql?

coockiesch

Salut!
Effectivement: Tu fais un select count(*) avec la condition que tu vas utilise pour la suppression...

Ensuite:

$result = mysql_query("DELETE FROM table WHERE $condition");
if($result)
echo 'Suppression: OK';
else
echo 'Suppression: Erreur';


@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
mercredi 21 juillet 2004 à 12:37:48 | Re : retour de DELETE en sql?

nlh

merci de vos reponse.. mais en fait sa ne solutionne pas mon blem.... a savoir que je ne peux pas faire un select avant sinon sa serai trop simple...
en fait pour vous detailler un peu plus le probleme :
j'ai une table a deux cle primaire ici :

ma_table
CLE1 CLE2
a 1
b 4
c 2
d 3
e 5

et j'ai une liste a supprimer dans un fichier...
a-1
b-4
f-3


si je suis votre methode sa veut dire que je fait un select avant de supprimé en prenant chaque ligne et fesant un requete comme ca :
SELECT * FROM ma_table WHERE CLE1='a' AND CLE2='1' OR CLE1='b' AND CLE2='4' OR CLE1='f' AND CLE2='3';

la effectivement je vais savoir combien vont etre supprimés et les quels, c'est a dire les deux la : (vu que le couple f/3 n'existe pas dans la table ci dessus)...

CLE1 CLE2
a 1
b 4

et apres ca je ferai mon delete avec la meme clause where... :
DELETE FROM ma_table WHERE CLE1='a' AND CLE2='1' OR CLE1='b' AND CLE2='4' OR CLE1='f' AND CLE2='3';

comme ca c'est tout bon sa repond bien a tout ce que j'ai demander...

mais mon probleme c'est que ma_table dans la realité compte plus de 100 000 enregistrement et que les fichiers contenant les liste a supprimés peuven en contenir presque 50 000...
ducoup mon probleme sera que les 2 requetes feront bien vite plus de plusieur million de caracteres chacune...

et je ne sais pas si il y a une limite, mais je ne suis pas sur mon propre serveur, et je ne me voit pas imposer des requete si lourde a mon hebergeur...


ducoup pour le moment ce que je fait, je ne sais pas si c'est vraiment mieux :

je prend chaque ligne de mon fichier et je les supprime dans ma base une par une...
sa me donne :
DELETE FROM ma_table WHERE CLE1='a' AND CLE2='1'
DELETE FROM ma_table WHERE CLE1='b' AND CLE2='4'
DELETE FROM ma_table WHERE CLE1='f' AND CLE2='3'

ducoup sa me fait plein de petites requetes, et je voudrai pouvoir connaitre leur retour... c'est a dire que les deux premiere me renvoi 1 et la derniere 0 parceque l'enregistrement qu'elle a tenter d'effacer n'existe pas...


donc voila, si vous avez une soluc a ca, ou meme une meilleur methode je suis preneur....

merci encore de vos reponses...
mercredi 21 juillet 2004 à 14:02:03 | Re : retour de DELETE en sql?

coockiesch

Salut!
Je viens de voir un truc, tu peux essayer:

// http://dev.mysql.com/doc/mysql/fr/DELETE.html

Si vous voulez vraiment savoir combien d'enregistrements ont été effacés quand vous videz une table, et que vous êtes prêts à souffrir d'un léger ralentissement, vous pouvez utiliser une requête DELETE de ce genre :

mysql> DELETE FROM nom_de_table WHERE 1>0;



@++

R@f

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

www.progforum.net: Aide en programmation!
mercredi 21 juillet 2004 à 14:38:25 | Re : retour de DELETE en sql?

nlh

OUAIIIIIIIIIIIIIIIII merci R@f tu m'as mi sur la bonne voie....
alors a savoir quand on fait un delete sans clause where, il retourne 0... mais sinon il retourne le nombre d'enregistrement supprimés...

Dans mon cas j'utilise un clause where... et pour savoiar combien d'enregistrement on été supprimé, il suffit de me servir de la fonction mysql_affected_rows(), ca sert a recuperer le nombre d'enregistrement affectés par la derniere requete.....

ducoup :

mysql_query("DELETE FROM ma_table WHERE CLE1='a' AND CLE2='1'");
echo mysql_affected_rows(); //retourne 1

mysql_query("DELETE FROM ma_table WHERE CLE1='f' AND CLE2='3'");
echo mysql_affected_rows(); //retourne 0


voila merki bokou..... a++



Cette discussion est classée dans : type, sql, delete, orange, supprimés


Répondre à ce message

Sujets en rapport avec ce message

select sur 2 tables [ par perig ] Salut alors voila!!!!Dans une base sql, j'ai 2 tables identiques en structure (je tenais a séparer les données au début et je me vois mal revoir toute pb DELETE requete sql [ par kyript ] Bonjours à tous voila mon problème j'ai un script avec un formulaire qui met a jour une table de la bdd. A la fin de ce script j'ai un "include" su Conversion d'un type ressource (requête SQL) en type int [ par Steeve Le Provost ] Bonjour,je fait une requete SQL que je stocke dans une variable appellée '$resultat'.Cette variable contient un tarif...exemple : 100Je veux additionn Delete en cascade... [ par kik0une ] Bonjour!Voilà, je développe en php/mysql un module de gestion d'article. J'ai donc pour chaque article : un type d'article et un prix. Donc forcément delete image dans dossier et dans la table [ par speedylol ] Bonjour, j'ai un petite question toute bête comment réalise ton une suppression d'image dans la table et dans le ou les dossier image et mini j'arrive INSERT dans une boucle WHILE : Possible ? [ par laubro ] Bonjour,j'ai une boucle while, dans laquelle je tente de faire un INSERT, mais ça ne fonctionne pas, toutes les opé marchent dans ma boucle mais pas l filtrage sql [ par herveguedj ] bonjour à tous je suis débutant en php je voulais savoir comme optimiser un moteur de recherche qui se trouve sur mon site http://leaderauto.free.frj' Erreur SQL !SELECT nom, tremis, desc, logo, ban, cp FROM marchand WHERE id=4 [ par mecapom ] Bonjour j'ai un petit soucis voici mon message d'erreur:Erreur SQL !SELECT nom, tremis, desc, logo, ban, cp FROM marchand WHERE id=4You have an error sql delete [ par fraichor ] j aimerais sortir une table et conserver seulement les derniers enregistrements de la table et supprimer le reste.enfin genre delete from table where PHP5 SQL TIME [ par ftsitoha ] Bonjour les amies !!! Question web PHP- SQL -TIME? J'aimerai bien connaître l'erreur de ces 2 scriptes, mon attribue n'est pas timestamp ça effacer


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales