Créer une base pour des evenements sportifs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Créer une base pour des evenements sportifs

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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...

Re: Créer une base pour des evenements sportifs

par xTG » 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 ?

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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']

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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

Re: Créer une base pour des evenements sportifs

par xTG » 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.

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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 :/

Re: Créer une base pour des evenements sportifs

par xTG » 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 ;)

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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 :/

Re: Créer une base pour des evenements sportifs

par xTG » 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.

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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 '

Re: Créer une base pour des evenements sportifs

par d0uz3 » 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

Re: Créer une base pour des evenements sportifs

par xTG » 22 sept. 2014, 08:18

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

Re: Créer une base pour des evenements sportifs

par arnaud69 » 22 sept. 2014, 08:12

J'ai pas tout suivi, et excusez mon mode qui aime bien les div et plus beaucoup les tableaux...
Mais tu pourrais pas générer un peu de div avec du css plutôt que des print "</form><tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr></tr></table>"; interminables...
Plus joli et surtout plus pratique pour de la belle mise en page responsive, etc...

Je disça, je dis rien moi...

Re: Créer une base pour des evenements sportifs

par d0uz3 » 21 sept. 2014, 21:33

arf, j'en ch... dans les Mises a Jour.

déja, bizarrement il me liste bien les joueurs ' a modifier ' ( donc inscrits dans JOUES a l'id_match désiré ) mais il ne me remonte pas les bonnes infos :

Code : Tout sélectionner

$sqlid = "select * from JOUES join players ON players.id = JOUES.id_joueur where id_match='$match'"; $reqid = mysql_query($sqlid); print "<table align=\"center\" border = '0'> <tr><th></th><th>Nom</th><th>Dispo</th><th>En Attente</th><th>Indispo</th><th>Annulé</th><th></th></tr> <form method = 'post' action = 'index.php?page=maj_party' >"; while($res = mysql_fetch_assoc($reqid)) { $id = $res['id']; $dispo = $res['Dispo']; $nom = $res['nom']; $id_joueur = $res['id_joueur']; print "<tr><td><input type='hidden' name='ids' readonly='readonly' value='$id_joueur' /></td> <td>$nom</td>"; echo '<td><input type="radio" name="Dispo['.$id_joueur.']" value="Y"'; if( $dispo == "Y" ) echo ' checked="checked"'; echo '/></td>'; echo '<td><input type="radio" name="Dispo['.$id_joueur.']" value="N"'; if( $dispo == "N" ) echo ' checked="checked"'; echo '/></td>'; echo '<td><input type="radio" name="Dispo['.$id_joueur.']" value="S"'; if( $dispo == "S" ) echo ' checked="checked"'; echo '/></td>'; echo '<td><input type="radio" name="Dispo['.$id_joueur.']" value="A"'; if( $dispo == "A" ) echo ' checked="checked"'; echo '/></td>'; echo '<td><button type = "submit">MAJ</button></td>'; } print "</form><tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr></tr></table>";
ca me sort une erreur pour 2 joueurs, ils apparaissent ' indispos ' alors qu'ils sont bien notés en S dans phpmyadmin..

et enfin, lorsque je veux faire une MAJ, ca ne change rien dans la table JOUES, pourtant je suis pas loin, j'arrive juste pas a recuperer le A dans le tableau la :

Array ( [ids] => 1 [Dispo] => Array ( [1] => A ) )

voila comment je tente de le récupérer :

Code : Tout sélectionner

$id_joueur = $ids['id_joueur']; $disp = $Dispo['id_joueur']; print $disp;
l'ids je l'ai, mais le $disp s'affiche pas :(

Re: Créer une base pour des evenements sportifs

par xTG » 20 sept. 2014, 20:06

Non la ligne 1 de la requête en fait. ;)
Et franchement je devais pas être réveillé quand j'ai lu ton code...
Un multi-update avec données différentes c'est... IMPOSSIBLE !
Voir la syntaxe de update : http://dev.mysql.com/doc/refman/5.0/fr/update.html

Il te faut donc une requête UPDATE par joueur, tu ne peux pas faire autrement.
Il n'y a que pour une requête INSERT que tu peux faire ce que tu fais actuellement.