Question loop et duplicate - 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 : Question loop et duplicate (/showthread.php?tid=4897) Pages :
1
2
|
Question loop et duplicate - sadira - 09-06-2010 Bonsoir, j'ai une requête qui va chercher les enregistrements dans ma table: Code : $result = $db->query("SELECT * FROM equipement WHERE iduser = '".$user['uID']."'"); Je boucle et j'assigne des variables à chaque, par exemple: Code PHP :
Si l'id trouvé est égal à 1, j'assigne la valeur et je récupère le nombre, idem pour 2, 3, etc Mon problème est qu'il se peut qu'il y ai deux entrées pour l'idtroupe, et que je souhaiterai que $nombre2 soit le cumul des valeurs de plusieurs entrées. Je n'arrive pas à formuler en PHP le "si double valeur retournée, additionne le contenu des valeurs nombre de ces X entrés" Auriez-vous une solution? Merci pour votre aide PS: Ma table: RE: Question loop et duplicate - php_addict - 09-06-2010 salut je pense que ta façon de récupérer les données de la base de donnée n'est pas bonne, tu devrais plutot faire ceci: Code PHP :
lis le topic suivant et notamment au sujet de Fetch et FetchAll (et leurs option : PDO::FETCH_ASSOC , PDO::FETCH_NUM et PDO::FETCH_BOTH) --> http://www.jeuweb.org/showthread.php?tid=6245&highlight=PDO RE: Question loop et duplicate - Sephi-Chan - 09-06-2010 Je pense que tu cherches à compter les troupes de chaque type, non ? Si c'est bien ça, voici la requête qu'il te faut :
Au passage : on ne met pas de guillemets autour d'un nombre, mais uniquement autour des chaines de caractères. Sephi-Chan RE: Question loop et duplicate - sadira - 10-06-2010 Merci beaucoup pour votre aide rapide. > php_addict: Je vais regarder PDO de plus prés. Merci pour cette information. > Sephi-Chan: En fait je cherche à créer 24 entrées dans un select, chacune contenant le nombre de troupes avec un equipement, mais je vais tester SUM et sprintf. Merci pour l'info sur les guillemets, mauvaise habitude que j'ai >< Parfait, SUM(nombre) marche parfaitement. Mon erreur était d'ecrire Code : $nombre1 = $row['nombre']; Code : $nombre1 = $row['SUM(nombre)']; Encore merci pour ces informations plus qu'utiles ! RE: Question loop et duplicate - Anthor - 10-06-2010 Tu es sûr que cela fonctionne en assignant un bout de requêtes ? RE: Question loop et duplicate - sadira - 10-06-2010 Parfaitement oui, je viens de le tester sur mon select de 24 entrées et les résultats sont tous exacts. RE: Question loop et duplicate - Anthor - 10-06-2010 Je peux voir ton code ? RE: Question loop et duplicate - sadira - 10-06-2010 Euh... oui mais je précise que je suis pas du tout développeur, alors le code est sans doute de mauvaise qualité mais je code pour ensuite confier le projet à un vrai dev, qui aura une base visuelle pour comprendre tout. Premier select, va chercher les objets de l'utilisateur et leur correspondance dans la table objets: Code : <?php Second select qui va chercher plusieurs données, le nombre de troupes totale dans la table user (uSodat, uArcher, etc), et le nombre de troupes ayant un equipement dans la table equiptroopsuser (id de la troupe (de 1 a 24),id de l'utilisateur, id de lobjet et nombre). Code : <?php Etant donné qu'on peut assigner 3 epées à 5 soldats, et 1 glaive au soldat restant, je ne fais pas d'update mais un create table aprés avoir récupéré les variables du formulaire Code : $db->query("INSERT INTO equiptroopsuser (`iduser`,`idtroupe`,`idobj`,`nombre`) VALUES ('" . $user['uID'] . "','$idorigin2','$idorigin','$numberitemcheck')"); Voila une vidéo du résultat: Exemple vidéo RE: Question loop et duplicate - Anthor - 10-06-2010 Ok, tu utilises le SUM ensuite ^^ C'est le passage dans une variable qui me paraissait bizarre. RE: Question loop et duplicate - srm - 10-06-2010 Petit commentaire concernant la remarque de php_addict, n'utilise surtout pas fetchAll, ton script va exploser en mémoire plus ta table est grosse. Utilise les itérateurs de PDO. |