Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1876 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  besoin de votre avis sur un insert dans une boucle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

besoin de votre avis sur un insert dans une boucle

n°912358
Scarf3ss3
Posté le 01-12-2004 à 19:12:54  profilanswer
 

Voilà je mets au point un service de messagerie interne pour mon site.
Pour d'écrire rapidement il y a un attribut dans ma table qui indique statut 1 = message lu
statut 2 = message non lu.
statut 3 = message dans la corbeille.
 
Ensuite un attribut id_contact qui prend comme valeur le destinataire du message. Donc quand un user se connecte à sa boite y a un select*from messagerie where id_contact = '$session->id_contact'.
 
Le but étant que les visiteurs s'échangent des messages privés. Mais voilà moi l'admin, je veux pouvoir envoyer de temps en temps des messages à tous les inscrits.
J'ai donc pensé à un insert dans une boucle.

Code :
  1. $requete = mysql_query (Select id_contact from user,$serveur, $login, $motDePasse);
  2. while ($resultat = mysql_fetch_object ($requete));
  3.       {
  4. mysql_query (INSERT INTO messagerie SET (id_contact,statut,message) VALUE ('$resultat->id_contact','2','$mon_message'),$serveur, $login, $motDePasse);
  5.       }


Alors ma question: en sachant qu'il peut y a avoir des milliers d'user est-ce que cet INSERT dans une boucle ne sera pas trop lourd ? Je fais mes armes en PHP et Mysql sur ce site et je n'ai aucune experience en matière de bouffage de ressource des requetes.  Je précise qu'il y aura bien que moi qui pourra faire cette requete et qu'à la limite je pourrai la faire en heure creuse.
Qu'en pensez-vous ?


Message édité par Scarf3ss3 le 01-12-2004 à 19:13:55
mood
Publicité
Posté le 01-12-2004 à 19:12:54  profilanswer
 

n°912365
sielfried
Posté le 01-12-2004 à 19:22:57  profilanswer
 

Je ne sais pas si ça changera beaucoup de choses au niveau optimisation (et je suppose que la réponse est soit "carrément" soit "pas du tout" ), mais perso je ferais un seul insert, la boucle servant alors à concaténer les différentes parties de celui-ci.
 
Mais le mieux je pense, si le schéma de ton truc l'y autorise, serait de définir une valeur spéciale pour id_contact qui signifierait "tout le monde".


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°912369
Scarf3ss3
Posté le 01-12-2004 à 19:27:01  profilanswer
 

Sielfried a écrit :

Je ne sais pas si ça changera beaucoup de choses au niveau optimisation (et je suppose que la réponse est soit "carrément" soit "pas du tout" ), mais perso je ferais un seul insert, la boucle servant alors à concaténer les différentes parties de celui-ci.
 
Mais le mieux je pense, si le schéma de ton truc l'y autorise, serait de définir une valeur spéciale pour id_contact qui signifierait "tout le monde".


Oui justement j'y ai pensé mais à ce moment là comment prendre en compte les messages lu, non lu et corbeille ?
On ne peut pas...
 
Sinon je suis désolé mais je n'ai pas compris la première partie de ton message
 
Edit: ah si j'ai compris, effectivement cette solution est interessante !
je suis interessé d'avoir un avis.


Message édité par Scarf3ss3 le 01-12-2004 à 19:29:03
n°912582
Scarf3ss3
Posté le 01-12-2004 à 22:56:55  profilanswer
 

Je suis désolé de faire un  :bounce: mais je n'ai pas eu de réponse !
A ma place que feriez vous alors ?

n°912586
sielfried
Posté le 01-12-2004 à 23:03:14  profilanswer
 

Perso en tout cas j'ai un système de messagerie sur mon site et je fais comme ça (car effectivement j'ai aussi les notions de lu/non lu etc). Cela dit j'ai assez peu de membres.
 
Ce qui est sûr c'est que je doute qu'il y ait une solution sans "insert massif", vu que comme tu le dis il faut que chaque réception de message soit gérée indépendamment, son flag vu/non vu, la corbeille si tu la gères, etc.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°912593
Scarf3ss3
Posté le 01-12-2004 à 23:11:15  profilanswer
 

Sielfried a écrit :

Perso en tout cas j'ai un système de messagerie sur mon site et je fais comme ça (car effectivement j'ai aussi les notions de lu/non lu etc). Cela dit j'ai assez peu de membres.
 
Ce qui est sûr c'est que je doute qu'il y ait une solution sans "insert massif", vu que comme tu le dis il faut que chaque réception de message soit gérée indépendamment, son flag vu/non vu, la corbeille si tu la gères, etc.


oui justement...
Mais bon ça me rassure que tu utilises la même solution que moi, j'avais peur qu'on me traite de malade de faire un INSERT dans une boucle  :wahoo:

n°912599
sielfried
Posté le 01-12-2004 à 23:17:28  profilanswer
 

scarf3ss3 a écrit :

oui justement...
Mais bon ça me rassure que tu utilises la même solution que moi, j'avais peur qu'on me traite de malade de faire un INSERT dans une boucle  :wahoo:


 
Vi enfin je fais qu'un seul INSERT au final (cf mon premier post), dans le doute. :)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°912602
Scarf3ss3
Posté le 01-12-2004 à 23:19:02  profilanswer
 

Sielfried a écrit :

Vi enfin je fais qu'un seul INSERT au final (cf mon premier post), dans le doute. :)


D'ailleurs à ce propos, j'ai compris sans comprendre. Je ne savais pas qu'on pouvait insérer plusieurs enregistrement d'un seul coup !
comment ça se présente ???

n°912610
sielfried
Posté le 01-12-2004 à 23:26:56  profilanswer
 

insert into table (champ1, champ2, ..., champN)
values
(val1, val2, ... valN),  
(val21, val22,... val2N),
...
(valN1, valN2,... valNN);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°912617
Scarf3ss3
Posté le 01-12-2004 à 23:42:46  profilanswer
 

Sielfried a écrit :

insert into table (champ1, champ2, ..., champN)
values
(val1, val2, ... valN),  
(val21, val22,... val2N),
...
(valN1, valN2,... valNN);


 :jap:  
Merci

mood
Publicité
Posté le 01-12-2004 à 23:42:46  profilanswer
 

n°912622
Manaloup
Posté le 02-12-2004 à 00:05:23  profilanswer
 

Un seul Insert a plusieurs enregistrements sinon ton serveur SQL va faire la gueule...
 
La boucle ne servant qu'a concatener le texte...


Message édité par Manaloup le 02-12-2004 à 00:05:52
n°912628
Scarf3ss3
Posté le 02-12-2004 à 00:28:41  profilanswer
 

Manaloup a écrit :

Un seul Insert a plusieurs enregistrements sinon ton serveur SQL va faire la gueule...
 
La boucle ne servant qu'a concatener le texte...


ok merci  :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  besoin de votre avis sur un insert dans une boucle

 

Sujets relatifs
Besoin d'aide pour un exposé (oracle, sqlserver, php, JS, perl et asp)une boucle dans un batch ?
Votre avis sur la façon de faire: passage de variableUrgent - Besoin d'aide pour un partiel
Besoin de rapidité - comparaison - fichier & requetes[PL/SQL] insert, commit, rollback ds une procédure stockée ???
[avis] conseil et avis: site sur le développement de jeuxboucle do ou boucle for
[URGENT] besoin d'avis de developpeurs :) 
Plus de sujets relatifs à : besoin de votre avis sur un insert dans une boucle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR