PHP/MYSQL lié deux tables a partir d'une list

123biwei Messages postés 24 Statut Membre -  
phil470 Messages postés 3 Statut Membre -
Bonjour à tous. Je suis un autodidacte en php et surtout debutant. (donc pardonnez mes eventuels fautes de vocabulaire)
Pour mon equipe de foot je veux inscrire les joueurs pour chaque match. En php/mysql.

Deux tables: match et joueurs

dans la table feuille un champs joueurs, rempli sous forme de liste: id1;id2;id3

pour ecrire et recuperer le noms des joueurs dans la liste je fais un truc assez hasardeux (qui marche mais bon y'a certainement plus simple): je recupere le champs, le decoupe en array fais un recherche array et si ca coincide j'inscrit le nom..

$presents=explode (";", $selection_id);
 $key = array_search($row_joueurs['user_id'], $present);
     if ($key!=FALSE){
	     $presents_nom=$presents.nom.$row_joueurs['nom'];}


euh.. je le refais comme ca de tete, y'a ptet des fautes mais l'idee est la et ca marche...

Qui me dit quelle est la bonne technique?

merci,

Pierre.
Configuration: Windows XP
Firefox 2.0.0.6

4 réponses

  1. Alain42
     
    Une solution:

    dans ta table matches tu mets deux champs

    un champ match, et un champ joueurs

    pour chaque match tu inséres autant de lignes que de joueurs

    donc chaque ligne de ta table contiendra:
    champ matchchamp joueurs
    Lyon-marseille joueur1
    Lyon-marseille joueur2
    Lyon-marseille joueur3
    etc....

    ensuite pour récuperer la liste des joueurs de Lyon-marseille tu fais la requette:

    $match_cherche="Lyon-marseille";
    $req="SELECT joueurs FROM matches WHERE match='$match_cherche' ";

    Si tu veux la liste des matchs qu'un joueur a fait:

    $joueur_cherche="joueur2";
    $req="SELECT match FROM matches WHERE joueurs='$joueur_cherche' ";
    0
  2. 123biwei Messages postés 24 Statut Membre 4
     
    merci beaucoup Alain..

    Le probleme c'est que dans ma table match j'ai plein d'autre infos, SCORE, HORAIRE, LIEU.... ta technique m'obligerait a remplir les x fiches match des x joueurs ayant particpé? Dis moi si j'ai tort..

    Faut t'il alors faire une table intermediaire? (match_presence) ca serait complex...
    0
    1. ThErOr Messages postés 1 Statut Membre
       
      Oui en effet il serait bien d'avoir une table intermédiaire de jointure entre tes matchs et tes joueurs. Dans cette table tu retrouves l'identifiant de ton match ainsi que l'identifiant du joueur ex:

      ID_JOUEUR, ID_MATCH
      joueur1 , match1
      joueur2 , match1
      joueur3 , match1
      joueur4 , match1
      joueur1 , match2
      joueur2 , match2

      Dans ce cas la, tu peux retrouver pour chaque match qui a joué, ainsi que pour chaque joueur quel match il a joué.

      Voila pour les requêtes jte laisse faire
      0
    2. 123biwei Messages postés 24 Statut Membre 4
       
      Salut Theror,
      Je viens de me passer un choeutte we a tout repasser mes codes selon ta formule... AIE..

      Sinon, si je fais la meme chose pour les buts.

      table buts :

      Id_Mayth1, Id_joueur1
      Id_Mayth1, Id_joueur3
      Id_Mayth1, Id_joueur5
      Id_Mayth2, Id_joueur1
      Id_Mayth2, Id_joueur2
      Id_Mayth3, Id_joueur3
      Id_Mayth4, Id_joueur1
      Id_Mayth4, Id_joueur4

      Comment recuperer au plus simple le meilleur buteur?
      (le nombre de but par joueur, je sais faire)


      merci..
      0
  3. 123biwei Messages postés 24 Statut Membre 4
     
    quelqu'un a t'il une solution.. please :-)
    0
  4. phil470 Messages postés 3 Statut Membre
     
    salut, peut-être que ce site pourra t'aider :
    http://www.roodali.com/index.php?2007/06/26/4-3-listes-deroulantes-liees-avec-ajax-php-mysql
    0