doublearray - 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 : doublearray (/showthread.php?tid=3645) Pages :
1
2
|
doublearray - biboum - 06-02-2009 Bonjour, j'aimerai pouvoir comprendre comment marche les doubles array. Ca se présente comme ca : Code PHP :
Mais... Dans mon cas précis, imaginons que j'ai des pommes, et des oranges, et que pour faire du jus de fruits, il me faut 10pommes et 3oranges. Comment je fais pour lui dire "if isset(10pommes) AND isset (3orange) = 1fruit"; Mais dans l'array... RE: doublearray - Allwise - 06-02-2009 Salut, dans ton code il y a une erreur, il manque un index. Sinon, une simple boucle peut faire l'affaire. Tu parcours ton tableau, et à chaque fois que tu rencontres l'occurrence recherchée tu incrémentes une variable. Code PHP :
Ca affichera "Il y a 2 pomme(s) et 3 orange(s)". Tu peux aussi faire une solution plus générique, qui compte automatiquement tous les enregistrements de tes tableaux : Code PHP :
RE: doublearray - biboum - 06-02-2009 Hummmm, j'explique plus précisément ce que je veux faire Imagine que tu as une usine qui produit des jus de fruits. Pour 1jus de fruit, il faut SOIT 10tomates, SOIT 4agrumes, etc. donc j'essaye pour le moment de voir l'occurence par rapport au stock disponible, mais ca ne marche pas... Code PHP :
RE: doublearray - Allwise - 06-02-2009 Salut, j'ai du mal à comprendre ce que tu cherches à faire, mais ça commence à rentrer. Tout d'abord, dans ta requête il y a des problèmes. Elle ne peut pas marcher, premièrement parce que ta clause WHERE, tu exprimes deux conditions pour le champ pays : tu exiges qu'il soit égal à $usines['pays'] et égal à $a['paysjoue']. Ca ne peut marcher que si ces deux variables se valent, puis de toute façon inutile de mettre 2 fois cette condition. Ensuite, pour comparer des chaines de caractères dans tes conditions, il est préférable d'utiliser LIKE, plutôt que =, qui est réservé aux nombres. Enfin, plutôt que d'envoyer 9 fois la même requête, tu pourrais l'envoyer une seule fois en modifiant ta condition et en faisant un truc genre Code : SELECT .... FROM .... WHERE ... AND (type LIKE "orange" OR type LIKE "pomme"...) Sinon, pour les problèmes comme ça, je te conseille de décortiquer ton code pour déceler l'erreur. Prends l'habitude d'afficher tes variables pour connaître leur valeur lors de l'exécution du script. Pense également à afficher les erreurs mysql avec la fonction mysql_error() ( cf php.net pour plus d'infos ), et à afficher tes requêtes. Pour en revenir à ton problème, a priori rien ne s'affiche, et ça vient clairement de ta requête SQL. Autre chose, quand tu fais Code PHP :
Si tu veux bien afficher ce nombre, tu peux supprimer les guillemets ( ça changera rien mais c'est plus correct ). Si tu veux afficher le nom des jus de fruit, il faut afficher la clé du tableau et non sa valeur. Pour cela, il faut utiliser la fonction key : Code PHP :
Code PHP :
Voilou, t'as de quoi faire RE: doublearray - biboum - 06-02-2009 Merci, en effet de nombreuses erreurs Une heure que je bloque sur ma requête...trop habitué à faire une requête avec une demande de pays que je ne vois même plus qu'il y en adeux, et deux différents...^^ En revanche, les array, toujours aussi compliqué, j'ai rien compris. Donc je récapitule. Là j'ai un tableau avec mes différents besoins. 8 pommes, 10agrumes, etc... Moi ce que je veux, c'est voir combien j'ai en stock de TOUT les fruits possibles, et voir combien de produits je peux produire avec les fruits que j'ai en stock. Mais du coup ce n'est pas une boucle qu'il faut que j'utilise si ? RE: doublearray - Allwise - 06-02-2009 Ok j'ai compris ! Alors, il faut que tu comptes le nombre de fruits dans ta table, et que tu groupes les résultats par fruits. Ca te donnerait une requête du genre : Code PHP :
Code : type | nbFruits Ensuite, il ne te reste plus qu'à confronter ces résultats avec le nombre de fruits requis pour faire un jus. Si, dans ta table c_stock, tu avais aussi le nombre de fruits requis nb_fruits_requis pour faire un jus, tu aurais pu faire Code PHP :
RE: doublearray - biboum - 07-02-2009 RE: doublearray - phenix - 07-02-2009 On appel ce genre tableau, des tableaux a 2 dimensions. Imagine l'array suivant: Code PHP :
Ensuite, PHP gère parfaitement ce genre de tableau, par exemple, je veux le nombre de pomme: Code PHP :
Affichera 10. C'est très pratique pour associé par exemple, l'id d'un jour et c'est caractéristique. dans le cas ou tu voudrais récupéré pomme, l'utilisation de la fonction array_flip t'aidera car il inversera les clées et les valeurs. J'espère que cela t'aide. RE: doublearray - wild-D - 07-02-2009 (07-02-2009, 10:37 AM)phenix a écrit : dans le cas ou tu voudrais récupéré pomme, l'utilisation de la fonction array_flip t'aidera car il inversera les clées et les valeurs. tout droit sorti de la doc php
array_flip est à utiliser avec bon sens; si tu ne peux pas garantir que les valeur sont toutes uniques.. on n'aura plus que la dernière paire "valeur_présente_plusieurs_fois=>clé" au final RE: doublearray - Allwise - 07-02-2009 |