[Résolu] Conditions complexe - 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] Conditions complexe (/showthread.php?tid=229) |
[Résolu] Conditions complexe - Single Dark - 09-04-2008 Voilà, je suis en train de coder mon système pour afficher les batiments. Jusqu'a là c'est facile. Je peut afficher un batiments si les conditions de constructions sont correctes. Mais j'ai un souci. Pour que mon système fonctionne il faut que TOUS les batiments soient entrés dans la base de donnée, or c'est hyper lourd comme truc. Le code est plus parlant que des mots, voilà mon 'tit système, qui n'est pas optimisé : Le contenu simplifier de la base de donnée des batiments du jeu : sc_table_info_bat a écrit :|..ID..|..nom_bdd..|..nom...........|..condition_1..|..condition_2..| Donc la pour que la mine d'or puisse s'afficher il faut que la mine de fer soit au niveau 5. Pour l'autre c'est le même principe, mine de fer niveau 10 et mine d'or niveau 5. Le contenu de la table qui liste les batiments présants sur la planète du joueur : sc_table_planete_bat a écrit :|..id_planete..|..id_batiments..|..niveau..| Içi la planète 1, dispose d'une mine de fer de niveau 10 et d'une mine d'or niveau 5. Les requetes sql: Code PHP :
Jusqu'à la rien de bien compliquer. Ensuite la page qui affiche les batiments : Code PHP :
Voilà, donc mon problème c'est que je voudrai lister les batiments qui repondent aux conditions de construction et qui ne sont PAS dans la table 'sc_table_planete_bat'. Donc en gros je voudrai faire une jointure SQL qui me liste les batiments qui ne sont pas dans la table 'sc_table_planete_bat'. Pour le reste je sais faire. Biensur j'aurai pus le faire tous seul, mais j'aurai fait une dizaine de requete, fais un demi douzaine de boucle, alors que je pense qu'il exise un moyen pour le faire. Mais là je seche. Merci, à ceux qui jeteront un coup d'oeil. [EDIT] Crotte, je me suis trompe de place, si un modo pouvait le mettre dans la section 'Debug' ?!? merci RE: Conditions complexe - Mysterarts - 09-04-2008 Déplacé RE: Conditions complexe - Eluox - 10-04-2008 Salut, J'ai pas vraiment le temps de t'aider, mais je voulais te demander, pourquoi stocker les infos de batiments dans un table, c'est pour moi, des ressources inutiles utilisés RE: Conditions complexe - keke - 10-04-2008 Coucou, Tout d'abord, les conditions je les mettrais sur une table à part, avec une valeur de condition par champs. Ensuite, ce que j'ai compris, c'est faire la liste des batiments constructibles mais qui n'ont pas déjà été construit Select * from table where (condition de batiment à construire ) and id_bat not in ( select * from table where (batiment déjà construit) ) Si ce type de construction ne marche pas, je t'encourage à faire 2 requêtes et à invalider les résultats de l'un avec les résultats de l'autre. Bon courage ! Kéké. RE: Conditions complexe - Argorate - 10-04-2008 Essaye dans ta requete SQL d'utiliser une sous requete avec NOT IN... RE: Conditions complexe - Single Dark - 10-04-2008 Mysterarts a écrit :Déplacé Merci, je savais bien que je l'avais mal placé, je ferai plus attention a l'avenir. el[u a écrit :ox] A vrai dire je ne sais pas trop pourquoi. Peut-être cela me laisse la possibiliter de changer facilement chaque données des batiments, et aussi pour pouvoir en creer d'autre aussi facilement. Mais tu soulève une bonne interrogation, es-ce que cela pourrai faire ralentir le serveur ? Si oui, bah je les sockeraient allieurs. XD kéké a écrit :Coucou, Coucou a toi aussi. kéké a écrit :Tout d'abord, les conditions je les mettrais sur une table à part, avec une valeur de condition par champs. Là je me posser une question, En quoi cela changera quelque chose ? Certe je n'aurai pas a faire un p*t*in de systeme pour lister les conditions ? Là mon systeme fonctionne correctement, donc si je vois que ta methode est plus rapide niveau serveur, je l'utiliserai. kéké a écrit :Ensuite, ce que j'ai compris, c'est faire la liste des batiments constructibles mais qui n'ont pas déjà été construit Tu as tous a fait compris, et celà prouve que je parle bien le francais. Je teste sa et j'edit. kéké a écrit :Si ce type de construction ne marche pas, je t'encourage à faire 2 requêtes et à invalider les résultats de l'un avec les résultats de l'autre. Je test ta premier méthode et si elle ne marche pas alors je testerai celle là. kéké a écrit :Bon courage ! Merci bicoup kéké a écrit :Kéké. Enchanté moi c'est Single Dark XD Argorate a écrit :Essaye dans ta requete SQL d'utiliser une sous requete avec NOT IN... A vrai dire je ne connaisais pas cette conditions, donc maintenant on va bien voir. RE: Conditions complexe - denisc - 10-04-2008 Quitte à rallonger la sauce... Rajoute une table : prerequis |id_batiment_a_contruire | id_batiment_requis | niveau | |............2...................|...........1...............|.....5....| |............3...................|...........1...............|...10....| |............3...................|...........2...............|.....5....| RE: Conditions complexe - Single Dark - 10-04-2008 J'ai résolu le problème grace a la conditions NOT IN. La requete donne sa : Code PHP :
Et voilà je vous remerci RE: [RESOLU] Conditions complexe - Argorate - 11-04-2008 pour info, cela marche évidament aussi avec "IN"... content de t'avoir aidé |