Génération d'une requête SQL - 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 : Génération d'une requête SQL (/showthread.php?tid=3065) |
Génération d'une requête SQL - Ter Rowan - 19-09-2008 en reparcourant une partie de mon code qui marchait (oui c'est rare ^^) je me suis aperçu que je faisais une boucle sur une requête du genre Code PHP :
du coup 10 requête pour le prix d'une. Je cherche donc à construire la requête Code PHP :
Je voulais savoir si ma méthode était pertinente, ou si vous aviez un "truc" plus intéressant (évidemment faut pas voir $i dans le in mais un truc un peu plus poussé) Code PHP :
sachant que ça marche, la question y a t il un truc un peu plus sexy/optimisé/avec panache ? RE: [PHP] petite question certainement un peu bête - Sephi-Chan - 19-09-2008 J'pense que ta méthode est la bonne. Je doute qu'il y ai plus sexy (sauf en mettant des espaces autour des = et <= ), même si je peux me tromper. Sephi-Chan RE: [PHP] petite question certainement un peu bête - Zamentur - 19-09-2008 en supposant que tutu est un int(ou dérivée) unsigned: 'select toto from table where tutu<10' C'est toute de même plus beau, et je pense même que c'est plus rapide car la comparaison inférieur est plus rapide que l'égalité (or en plus avec in il y a une égalité + des inégalités) RE: [PHP] petite question certainement un peu bête - Ter Rowan - 20-09-2008 Zamentur a écrit :en supposant que tutu est un int(ou dérivée) unsigned: yep mais d'où ma remarque Citation :(évidemment faut pas voir $i dans le in mais un truc un peu plus poussé) imagine qu'au lieu d'avoir tutu = '.$i tu as tutu = "'.$chaine[$i].'" je le fais en général, effectivement si c'était l ensemble des chiffres < 10 et > 0 je ne ferais pas un in RE: [PHP] petite question certainement un peu bête - JeromeJ - 24-09-2008 Salut, Si ta requête recouvre un champ de nombre il est fortement préférable d'utilser BETWEEN x AND y. Si par contre c'est une liste d'id (par exemple) et que ceux-ci peuvent varier, une syntaxe comme celle-ci sera plus adaptée: $array = array(...); // Tableau qui contient les num id $query = '... WHERE id IN('.implode(', ', $array).')'; RE: [PHP] petite question certainement un peu bête - Ter Rowan - 24-09-2008 ah effectivement c'est plus joli que mes 15 lignes ^^ en performance, c'est raisonnable ? RE: [PHP] petite question certainement un peu bête - keke - 24-09-2008 JeromeJ, je trouve que ta solution est très belle ! Elle nécessite moins de mémoire et les fonctions internes étant souvent les plus performante que des boucles For ... Si j'avais du temps, je remanierais quelques une de mes fonctions ... par contre, je garde ton code sous le coude pour mes prochains développements. Kéké RE: [PHP] petite question certainement un peu bête - Zamentur - 24-09-2008 Citation :imagine qu'au lieu d'avoirSi il s'agit de chaine de caractere unique, il peut etre envisagé d'utilisert un type SET ou ENUM, et de faire la même chose avec un BETWEEN. Dans l'absolue IN n'est utile si et seulement si il y a (ou aura) potentielement des trous dans la liste de ligne demandé |