IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

rassembler plusieurs update


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut rassembler plusieurs update
    Bonjour,

    J'aimerai savoir s'il étais possible d'imbriquer plusieurs UPDATE dans 1 seul requete pour éviter les accès bdd ?

    car actuelement je fait une boucle et à chaque passages de la boucle il y as un update d'effectué, mais ca fait tout de même pas mal d'accès serveur, ce que je veut éviter.

    j'ai cherché sur le site et internet et je ne trouve pas ce que je recherche malheureusement...

    aussi j'aimerai savoir comment faire pareil pour les SELECT

    Je vous remercie

  2. #2
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut
    Sépare toutes tes requêtes par des points-virgules!
    ;-)
    Avant de poster : FAQ, tutos, rechercher, google, ... Après :
    Merci

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut
    je pensse que ci c'étais aussi simple je n'aurai pas demandé...
    au faite c'est sous PHP et les updates ne marchent pas comme ca

  4. #4
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Quel genre d'UPDATE veux-tu réaliser ? Un petit exemple serait le bienvenu.

    Qu'entends-tu par "aussi j'aimerai savoir comment faire pareil pour les SELECT" ? Tu veux envoyer plusieurs requêtes d'un coup et récupérer les différents résultats ?

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut
    Au faite pour les updates je fais dans une boucle 1 mise à jour selon la boucle

    un exemple rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $array_test = explode('-', $_POST['le_tableau_precedent'])
     
    for ($i=0;$i<count($array);$i++){
      // S'il y as 200 boucles il y aura 200 connexions à la base :-(
      $db_xxx->query('UPDATE table_truck SET champ_x = '.$array_test[$i].' WHERE id = '.$i);
    }
    j'aimerai faire un truck du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $array_test = explode('-', $_POST['le_tableau_precedent'])
    $requete = '';
    for ($i=0;$i<count($array);$i++){
      // S'il y as 200 boucles il y aura 200 connexions à la base :-(
      $requete .= 'UPDATE table_truck SET champ_x = '.$array_test[$i].' WHERE id = '.$i';'; // je sais ce n'est pas un ";" mais c'est au cas ou...
    }
    // 1 seule connexion !
    $db_xxx->query($requete);
    pour le SELECT j'avais vu ca sur un tutorial d'optimisation des requetes ou l'on pouvais rassembler plusieurs select enssemble... mais j'arrive plus à trouver ce tuto :-(
    mais c'est moins important

    merci
    m'enfin c'est moins important

  6. #6
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut
    quelqu'un sais ?

  7. #7
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Déjà ce que tu as écrit dans tes commentaires est absolument faux. Il n'y a pas une connexion à chaque query(). La connexion reste active, c'est le principe de TCP.

    Il n'y a presqu'aucune optimisation à vouloir faire un gros query() avec 200 UPDATE ou 200 petits query(). Le serveur recevra les requêtes et les traitera de la même façon.

    Etant donné que tes UPDATE sont de la même forme, si tu veux optimiser, tu peux regarder du côté des prepared statements (voir l'article traduit par Maximilian : http://maximilian.developpez.com/mys...ed-statements/)

  8. #8
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 82
    Points
    82
    Par défaut
    ah j'étais persuadé que ca pouvais faire un gain de temps... bon alors tant pis :-)
    je vais lire le tuto, je te remercie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/12/2006, 22h16
  2. Plusieur Update en une seule requete?
    Par sirbaldur dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/06/2006, 13h13
  3. [SQL] delete+insert ou plusieurs update c'est quoi le mieux?
    Par cassy dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/06/2006, 10h47
  4. Rassembler plusieurs documents XML
    Par shaudron dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 02/05/2006, 15h41
  5. plusieurs UPDATE
    Par ssiga dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/03/2006, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo