Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1538 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  recherche multi champs ( x champs) + nom entête de champ

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recherche multi champs ( x champs) + nom entête de champ

n°1865937
formatc-kl​aus
petit ecolier au chocolat fin
Posté le 25-03-2009 à 22:20:39  profilanswer
 

hello les gens !
 
Voila j'ai un problème sur un site que je travaille pour un jeu vidéo.

Question 1 :

j'ai créé une table avec 152 champs, pour faire simple:  
 
- le 1er champ "nom" donne un nom de personne
- les 151 autres "monstre1,...,monstres151" donnent un nom d'objet que nous donne le monstre
 
ça ressemble à ça :

Citation :

NOM       |     MONSTRE1      |     MONSTRE2   |     MONSTRE3   |        ....      |     MONSTRE151    |
Jean       |        patate         |                      |                       |        .....    |                          |
Paul       |                           |                      |      patate         |      ....      |                          |
Jacques  |                          |                      |                       |     ....         |         pizza          |
Petra     |        tarte             |                       |                       |     .....      |                          |


 
Mon but c'est qu'à partir de l'objet j'affiche la liste des personnes + le monstre tué pour avoir cet objet comme ceci :

Citation :

===> objet patate  
Jean     Monstre1
Paul     Monstre 3


 
Seulement vous vous en douterez je suis débutant en php.
Ce que je connais comme type d'écriture ce serait le code ci-dessous mais j'aimerais trouver un truc plus simple pour éviter de me taper une fonction de 151lignes !!!
 
SELECT * FROM ma_table
WHERE MONSTRE1 = $objet_cherché
OR MONSTRE2 = $objet_cherché
OR MONSTRE3 = $objet_cherché
....
OR MONSTRE151 = $objet_cherché ;

 
J'ai parcouru différent forum mais je m'y perd dans la jungle des infos ! Alors j'ai essayé à l'instinct un truc du style " WHERE * =  $objet_cherché " mais bien sure ça ne marche pas  :sweat: (fallait pas rêver non plus  :ange:  )
 
Donc y a-t-il une expression simplifiée qui pourrait dire au WHERE de regarder dans tout les champs comme j'essaie de faire ???

Question2

 
La je me suis moins creuser la tête mais je veux remonter l'info d'entête de mon champs MONSTRE1 car le nom réel est renseigné dans une autre table et j'en ai besoin pour le récupérer ( sauf si plus simple existe)
 
 
Je suis preneur pour vos commentaires !
 
++

mood
Publicité
Posté le 25-03-2009 à 22:20:39  profilanswer
 

n°1865939
flo850
moi je
Posté le 25-03-2009 à 22:34:42  profilanswer
 

tu as mal conçu ta table ( tres tres tres mal )  
 
tu fais une table avec juste 2 champs  
monsterID; killedBy;
 
ensuite, il te suffit de faire SELECT monsterId FROM table WHERE killedBy='flo850' pour savoir tous les monstres que j'aitué


---------------

n°1865940
formatc-kl​aus
petit ecolier au chocolat fin
Posté le 25-03-2009 à 22:40:50  profilanswer
 

ben non ?!
 
si je fais comme ça ou je vois l'objet en question ??? c'est l'objet la recherche pas le nom de la personne.
 
D'autant plus qu'à la base cette table est aussi affichée à un autre endroit par personne pour affiché sous forme de liste le type d objet reçu selon le montre qu'on tronçonne. (j'espère que je t'embrouille pas^^)
genre :
Nom : Jean
monstre1 : patate
monstre2 : ...
....
monstre151:

 
Ma fonction ici c'est jsute une correspondance que je veux faire entre une table de liste d'objet et de liste d'utilisateur..

Message cité 1 fois
Message édité par formatc-klaus le 25-03-2009 à 22:42:25
n°1866122
macgawel
Posté le 26-03-2009 à 12:48:37  profilanswer
 


Ben si !
 
Tu as mal conçu ta base.
 
Comment géreras-tu ces cas :
- Tu veux passer à 152 monstres par personnes.
- Tu veux trouver les monstres qui ont donné une patate.
- Tu veux afficher la liste des combats d'un joueur (ce que tu veux faire, si je suis bien)
- ...
 
Exemple de base bien construite :

Code :
  1. Joueurs (Id_joueur, Nom_joueur, ...)
  2. Objets (Id_objet, Nom_objet, Description, ...)
  3. Monstres ( Id_monstre, Nom_monstre, ...)
  4. Combats (Id_combat, Id_joueur, Id_monstre, Id_objet)


Et pour avoir ton truc un simple SELECT sur ta table Combats avec jointure sur les autres tables pourt avoir les noms suffit.

n°1866413
formatc-kl​aus
petit ecolier au chocolat fin
Posté le 26-03-2009 à 21:12:00  profilanswer
 

OK cette méthode là irait..simplement ça va me faire refaire ma table de trouvaille d'objet et je vais passer de 6080 données (40 enregistrements X 152 colonnes)  à 12080 enregistrements (40 perso X 151 objets X 2 colonnes) et j'étais parti au début dans l'idée de réduire au max la taille de la table mais ça ne m'arrange pas dans mon cas.
 
Bref j'adopte ta réponse en tout cas !
 
et pour en dire un peu plus sur l'application via le site que je réalise, le site est fait sur une base Joomla1.5 avec le composant Fabrik et cette table sera visible directement sur le site. Je vais mettre ensuite des filtres pour que l'on ne voit qu'une personne à la fois pour que ce soit moins le bordel dans les 12000 lignes :) .
 
merci en tout  cas pour votre aide, ça m'a permis de me faire raisonner dans l'autre sens et mieux comprendre ce que je pouvais utiliser.

n°1866599
flo850
moi je
Posté le 27-03-2009 à 11:56:14  profilanswer
 

une base de données est prévu pour avoir beaucoup de lignes et peu de colonnes


---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  recherche multi champs ( x champs) + nom entête de champ

 

Sujets relatifs
Comment modiifier ce code pour avoir une recherche multiple?recherche quelqu un pour me refaire mon site
Récupérer type champ via son IdComment faire une recherche multicriteres?
[65816]recherche de livre sur la programmation du 65816Comment faire une recherche avec plusieurs mots?
Recherche dev Cyber Plus Banque populairevbs script recherche User sous-domaine
recherche commandes PCL 
Plus de sujets relatifs à : recherche multi champs ( x champs) + nom entête de champ


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR