[REGLE] Sortir la requête de la boucle ! - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [REGLE] Sortir la requête de la boucle ! (/showthread.php?tid=2185) |
[REGLE] Sortir la requête de la boucle ! - Ogham - 24-12-2007 Bonsoir, voilà je n'en ai pas vraiment besoin dans l'immédiat mais ça me turlupine car je n'arrive pas à comprendre la méthode et je n'aime pas ça. donc je cherche depuis plusieurs jours maintenant comment éviter de faire une requête INSERT dans une boucle, parce que "c'est mal", mais en dehors. Donc ce que j'ai compris de la méthode c'est que la boucle doit générer une chaine qui sera donnée en argument à la requête ... mais ça s'arrête là. donc j'ai une requête a insert multiples[/php] Code PHP :
je suppose qu'il faut générer les chaines'', 'y', 'y','y'), etc à l'aide de la boucle. Mais comment récupérer l'ensemble des chaines de caractère pour les passer en argument. J'y n'y arrive pas :pleure2: RE: Sortir la requête de la boucle ! - Harparine - 24-12-2007 Cool que tu aies trouvé le coup de l'insert multiples. Pour ton truc, c'est encore une histoire d'array. En réalité, c'est ce qu'il y a de mieux pour manipuler des données tabulaires dans un script. Donc le principe est le suivant : au lieu d'insérer direct dans ta boucle, tu crées un tableau contenant les données à insérer dans ta boucle et tu l'utilises à la sortie dans une seule insertion. Ex, en reprenant ton truc : Code PHP :
Voilà. Poses des questions si tu ne comprends pas. Evidemment, là, c'est un peu lourd puisque je passe par un tableau mais c'est pour l'exemple car ici, il y avait la possibilité de créer directement la requête dans la première boucle for. L'intérêt est évidemment de n'avoir plus qu'une seule requête au lieu de $nombreDeLignes @+ RE: Sortir la requête de la boucle ! - jo_link_noir - 24-12-2007 bonsoir, le foreach demande à être optimiser. Une fonction fait très bien l'affaire implode — Rassemble les éléments d'un tableau en une chaîne implode(",",$aTableauDonnees) revient à faire le foreach Sinon y aussi moyen de passer directement par une chaîne de caractère pour un résultat identique. Personnel je préfère les tableaux ^^ RE: Sortir la requête de la boucle ! - Ogham - 24-12-2007 Merci pour vos réponses Je pense avoir saisie le principe.Je testerais demain là il est tard. j'ai en effet fais quelques test avec implode, que je ne connaissais pas, aujourd'hui en me disant que ça devait bien être utile pour ce genre de chose. @Harparine suite à ton coup de pouce sur mon autre topic j'ai essayé toute la journée de me servir d'un tableau comme tu le fais là et de mettre la boucle foreach dans la requête mais je n'ai pas réussi à trouver la bonne syntaxe :$ Donc là ça m'aide beaucoup Une question: Code PHP :
Qu'est ce que le code ASCII ? Et que veulent dire les chiffre 121 et 123 ? merci encore. RE: Sortir la requête de la boucle ! - Harparine - 24-12-2007 @ j-12 : pas mal le coup du implode, c'est le genre d'astuces très utiles que je ne connais malheureusement pas @ Ogham : le code ASCII est une norme de codage de caractères en informatique. Par exemple, 121 correspond à "y" et 122 à "z". Ici, je voulais utiliser une boucle for tout en reprenant ton exemple "'', 'y', 'y', 'y'". J'ai donc commencé ma boucle à 121 et je l'ai terminée à 122 (strictement inférieur à 123). La fonction chr() affiche le caractère alphabétique à partir de ce code. Bref, ici c'est complètement inutile mais c'était l'occasion de te montrer comment sortir l'insert de la boucle. @+ RE: Sortir la requête de la boucle ! - Ogham - 24-12-2007 Bonjour, Merci Harparine. J'ai trouvé un tableau des correspondances ASCII en fouinant un peu. Je n'ai pas testé le reste on verra ça d'ici deux jours. Bonnes fêtes. |