[Résolu] Souci avec un Array dans une requête - 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 : [Résolu] Souci avec un Array dans une requête (/showthread.php?tid=1987) |
RE: Souci avec un Array dans une requête - Anthor - 21-04-2008 Quel version de mysql utilises tu ? RE: Souci avec un Array dans une requête - Yoda54 - 21-04-2008 Je te disais de passer par des variables dynamiques (plus d'explications ici: http://fr2.php.net/manual/fr/language.variables.variable.php). Dans ton cas, cela reviendrait à ça: Code PHP :
Ainsi, si plus tard dans ton développement tu souhaites ajouter l'objet ayant pour ID 15, la seule modif à faire sera d'écrire IN(22, 24, 25, 15) et la variable $15 sera directement utilisable. Ce qui doit résoudre au moins en partie le problème de souplesse évoqué par Sephi-Chan. Par contre, question optimisation, je ne sais pas du tout s'il vaut mieux utiliser cette solution ou celle avec le ORDER BY FIELD. RE: Souci avec un Array dans une requête - Kassak - 21-04-2008 Intéressant ça, mais dans ce cas la ça va, ça va donner une variable du genre $22 = ..... Mais si à la place du 22 j'ai un chiffre inconnu, une variable? RE: Souci avec un Array dans une requête - Yoda54 - 21-04-2008 Si c'est une variable existante, elle a une valeur qui deviendra le nom de la nouvelle variable, sinon, cela renverra une erreur. Pour le chiffre inconnu, je ne vois pas bien ce que tu veux dire. RE: Souci avec un Array dans une requête - Anthor - 21-04-2008 ORDER BY FIELD, fonctionne parfaitement sous MySQL 4 et 5. RE: Souci avec un Array dans une requête - Kassak - 21-04-2008 Ce que je veux dire, si dans le IN j'ai une variable contenant un id pouvant aller de 1 a 5000 à la place du 22, comment récupérer ensuite la variable du même style que $22, puisque je ne connaitrais pas la valeur, tu me suis? Pour le ORDER BY FIELD, j'ai pourtant la bonne version de Mysql, mais je vais d'abord essayer le méthode de yoda RE: Souci avec un Array dans une requête - Roworll - 21-04-2008 Et pourquoi ne pas reconstruire tout simplement un tableau associatif avec l'Id de l'objet en clé ? Ensuite, tu réutilises cette clef pour accèder à la valeur. Je reprends le cas de ta 2e requête Code PHP :
[Edit] Corrections diverses RE: Souci avec un Array dans une requête - Yoda54 - 21-04-2008 Tu veux dire quelque chose comme ça? Code PHP :
Dans ce cas, ceux sont les objets 12, 32 et 425 qui seront comptabilisés. @Anthor: Tu as un lien vers la doc pour ORDER BY FIELD, je ne connaissais pas et ne trouve pas de référence sur le site mysql.com. RE: Souci avec un Array dans une requête - Belsion - 21-04-2008 Je te rassures Anthor, ça marche très bien chez moi Peut-être la syntaxe de la requête qui n'a pas été comprise. Parfois un exemple en dur ça peut aider Citation : mysql_query('SELECT * FROM inventaire WHERE pseudo = "Belsion" AND id_item IN(22, 24, 25) ORDER BY FIELD(id_item, 22, 24, 25)') Edit: pour une aide un peu plus détaillée: http://case.oncle-tom.net/2007/08/21/mysql-tri-personnalises-aleatoires/ RE: Souci avec un Array dans une requête - Kassak - 21-04-2008 Oki merci à tous, je vais me débrouiller avec tout ça, et tester un peu chaque méthode pour voir ce que ça donne A plush |