Créer une base pour des evenements sportifs

ViPHP
xTG
ViPHP | 7331 Messages

22 sept. 2014, 08:18

$res['Dispo'][1]
:)

Eléphanteau du PHP | 36 Messages

22 sept. 2014, 08:55

justement, j'avais tenté ca, via cette requete $res['Dispo']['ids'] mais il prend pas :/

Edit :

Voici la commande correcte :)

Code : Tout sélectionner

$id_joueur = $ids['id_joueur']; $disp = $Dispo[''.$id_joueur.'']['Dispo']; $requete = "UPDATE JOUES SET Dispo = '$disp' WHERE id_joueur = '$id_joueur' and id_match = '$match'";
Je vais tenter la meme manip pour les MAJ_Players. ( Edit 2 : Impec ca c'est réglé )

Ensuite, comment créer une page ' provisoire ' lorsqu'on clique sur une date ou un joueur ?

Par exemple, lorsque je clique sur une date, ca me crée une page $event.php dans laquelle je vois la feuille de match.

Et idem pour les joueurs, si je clique sur d0uz3, ca me crée une $id_joueur.php ou je peux voir ses dispos, ses matchs joués, indispos etc

Eléphanteau du PHP | 36 Messages

22 sept. 2014, 15:21

j'ai cherché un peu, il ne semble pas qu'il soit possible de mettre ce type de page en place... a moins qu'on puisse récupérer les $_GET dans une fonction ou je demanderais en include d'afficher les contenus ( joueurs ou event )

bon la je fouine pour comprendre, par quel moyen NE PAS inclure les joueurs dans la partie ' add_party ' qui sont déja dans JOUES.

mon code actuel :

Code : Tout sélectionner

echo '<br><br>Liste des joueurs disponibles pour ce match :<br><br>'; $req = mysql_query('SELECT * FROM players WHERE Moment="'.$res4['Moment'].'" OR Moment="T"')or die(mysql_error()); $i = 1; while($player_list = mysql_fetch_assoc($req)) { $nom_joueur = $player_list['nom']; $id_joueur = $player_list['id']; $i++; }
va afficher ' TOUS ' les joueurs dispos pour le match qui va arriver en fonction de leurs dispos.

mais si jamais j'en selectionne plusieurs et clique sur ENREGISTRER, il va tout de meme me les re-proposer si je retourne sur la page.

n'y a t-il pas moyen dans la requete sql, de ' filtrer ' WHERE players.id != JOUES.id_player :/

Ah, et que ceux que je ne renseigne pas ( les checbox non cochés ) ne mettent pas ' NULL ' dans la table JOUES, et seront ainsi automatiquement re-proposés lors du prochain passage sur ' add '

ViPHP
xTG
ViPHP | 7331 Messages

22 sept. 2014, 19:43

n'y a t-il pas moyen dans la requete sql, de ' filtrer ' WHERE players.id != JOUES.id_player :/
Il faut le faire en deux requêtes que tu peux ensuite imbriquer l'une dans l'autre.

La liste des ingrédients du repas pris dans le frigidaire :
SELECT idIngredient FROM repas LEFT JOIN repas ON repas.idIngredient = frigidaire.idIngredient WHERE idRepas = xxx
Maintenant la liste des ingrédients non pris dans le frigidaire :
SELECT idIngredient FROM frigidaire WHERE idIngredient NOT IN (
   SELECT idIngredient FROM repas LEFT JOIN repas ON repas.idIngredient = frigidaire.idIngredient WHERE idRepas = xxx
)
;)
Ah, et que ceux que je ne renseigne pas ( les checbox non cochés ) ne mettent pas ' NULL ' dans la table JOUES, et seront ainsi automatiquement re-proposés lors du prochain passage sur ' add '
Tu as une boucle qui exécutes tes INSERT ou UPDATE.
Il faut dedans placer un if testant si la valeur retournée par la checkbox n'est pas vide.

Eléphanteau du PHP | 36 Messages

22 sept. 2014, 23:32

j'ai pas réussi a mettre en place le if checkbox is null car vu que je valide un formulaire complet, ca mettait pour le coup rien a jour.

du coup j'ai crée un ' delete from ' apres la table qui vire tous les champs ' dispo ' null ;)

me reste deux trucs a voir, comment créer un fichier .php qui porte le nom de l'event que je crée.

et j'ai tenté ta requete select from where id ( select from ) et ca ne semble pas marcher.. peut etre du au fait que j'ai plusieurs where...

Code : Tout sélectionner

$req = mysql_query('SELECT * FROM players WHERE Moment="'.$res4['Moment'].'" OR Moment="T"')or die(mysql_error());
ca ca fonctionne, mais me ré affiche a chaque fois, tous les joueurs plutot que filtrer ceux qui sont déja dans ' id_joueurs ' de la table JOUES.

et cette tentative :

Code : Tout sélectionner

$req = mysql_query('SELECT * FROM players WHERE Moment="'.$res4['Moment'].'" OR Moment="T" AND id NOT IN ( SELECT id_joueur FROM JOUES LEFT JOIN players ON JOUES.id_joueur = players.id )') or die(mysql_error());
ne marche pas, enfin ' a peu pres... ' elle m'affiche plus les ' moment = T :/

ViPHP
xTG
ViPHP | 7331 Messages

23 sept. 2014, 08:14

$req = mysql_query('SELECT * FROM players WHERE (Moment="'.$res4['Moment'].'" OR Moment="T") AND id NOT IN (
   SELECT id_joueur FROM JOUES LEFT JOIN players ON JOUES.id_joueur = players.id WHERE JOUES.id_match = ?????)') or die(mysql_error());
à compléter ;)

Eléphanteau du PHP | 36 Messages

23 sept. 2014, 11:05

ca veut pas :(

$req = mysql_query('SELECT * FROM players WHERE (Moment="'.$res4['Moment'].'" OR Moment="T") AND players.id NOT IN (SELECT id_joueur FROM JOUES LEFT JOIN players ON JOUES.id_joueur = players.id WHERE JOUES.id_match ="'.$match.'" )')or die(mysql_error());

ca ne m'affiche rien :/

ViPHP
xTG
ViPHP | 7331 Messages

23 sept. 2014, 13:38

Vérifies ce que retourne la sous-requête dans phpmyadmin :
SELECT id_joueur FROM JOUES LEFT JOIN players ON JOUES.id_joueur = players.id WHERE JOUES.id_match ="'.$match.'"
Puis testes la requête complète (toujours sous PMA).

Cela sera plus simple que de chercher avec le code complet.

Eléphanteau du PHP | 36 Messages

23 sept. 2014, 13:54

Voila le retour sous PMA :
MySQL n'a retourné aucun enregistrement. ( Traitement en 0.0037 sec. )
ouuuuh le vilain, c'est ou qu'on lui met la fessée ?

la requete semble pourtant coller, et ne retourne pas d'erreur de syntaxe donc il accepte les requete dans les requetes... :

Code : Tout sélectionner

SELECT * FROM players WHERE ( Moment = "M" OR Moment = "T" ) AND players.id NOT IN ( SELECT id_joueur FROM JOUES LEFT JOIN players ON JOUES.id_joueur = players.id WHERE JOUES.id_match = "10" ) LIMIT 0 , 30
Sinon pour les appels de page en fonction du joueur ou de l'event, ca a fonctionné via les GET URL, j'ignorais qu'on pouvait les ' cumuler ' ;)

Me reste plus que ce ' filtrage ' et apres je vois pas ce que je pourrais inventer d'autre pour compléter ce script :D

Eléphanteau du PHP | 36 Messages

23 sept. 2014, 14:05

Ok j'ai ma requete ;)

Code : Tout sélectionner

$req = mysql_query('SELECT * FROM players WHERE (Moment="'.$res4['Moment'].'" OR Moment="T") AND players.id NOT IN (SELECT id_joueur FROM JOUES INNER JOIN players WHERE JOUES.id_joueur = players.id AND JOUES.id_match ="'.$match.'")');
j'ai tenté aussi de mettre en place un systeme de ' sessions ' afin que certaines pages ne soient accessibles que si on s'est logué, pour autant il me renvoi toujours vers l'authentification malgré que j'ai inscrit les données dans le $_SESSION['login']

ViPHP
xTG
ViPHP | 7331 Messages

23 sept. 2014, 17:33

j'ai tenté aussi de mettre en place un systeme de ' sessions ' afin que certaines pages ne soient accessibles que si on s'est logué, pour autant il me renvoi toujours vers l'authentification malgré que j'ai inscrit les données dans le $_SESSION['login']
Comment fais-tu le test ?

Eléphanteau du PHP | 36 Messages

06 oct. 2014, 16:18

je poliotais dans mes envoi en session :D

j'ai bien avancé sur tout ce qui etait mise en forme et add/del des champs dans mes tables.

et j'ai modifié la table joue, pour intégrer les ' equipes ' de chaque joueur, ca fonctionne niquel.

en revanche je voudrais afficher les requetes dans un tableau, mais je trouve pas comment apeller en fonction du tableau ou je veux que ce soit affiché... je m'explique :

Code : Tout sélectionner

$sqlid = "select * from JOUES join players ON players.id = JOUES.id_joueur where id_match='$id' order by Equipe ASC"; $reqid = mysql_query($sqlid); echo '<center><TABLE> <tr><td align="center">'.$scoreA.'</td><td align="center">'.$scoreB.'</td></tr><TR><TD align="center">Domicile</TD><TD align="center">Extérieur</TD></TR>'; while($res = mysql_fetch_assoc($reqid)) { echo '<TR><TD align="center">'.$res['nom'].$res['Equipe'=='A'].'</TD><TD align="center">'.$res['nom'].$res['Equipe'=='B'].'</TD></TR>'; } echo '</TABLE></center>';
ce que je voudrais c'est que la ou j'ai
'.$res['nom'].$res['Equipe'=='A'].'
ca n'affiche que les A, et l'autre que les B.

Mais j'ai tenté de faire
'.$res['nom']+$res['Equipe'=='A'].'
ca me sort des chiffres ( logique en meme temps... ) et && ne sort que des 1...