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

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. 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
    1. 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. 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. 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
    2. quelqu'un a t'il une solution.. please :-)
      0
      1. 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