Aide - Recherche - Membres - Calendrier
Version complète : [CODEUR]Script matchs simple
Forum Webmaster - Ton Webmaster > Conception de sites > Programmation > php
popi14
Bonjour,

je suis actuellement à la recherche d'un codeur php/mysql pouvant me faire la chose suivante:

Un système AJOUTER/EDITER/SUPPRIMER de matchs très simple.
Quelque chose avec :
-un fichier matchs.php permettant l'affichage des matchs.
-un fichier ajouter_matchs.php pour ajouter un match tongue.gif
-un fichier liste_matchs.php avec tous les matchs et la possibilité de les editer ou supprimer.


Je souhaiterais que lorsque les matchs s'affiche on trouve:

date - nom_de_la_team1 vs nom_de_la_team2 : scoreteam1 - scoreteam2
Et que si scoreteam 1 > scoreteam2: donc gagner écrir le score en vert
si le contraire en rouge et si = en bleu.

popi14_@_gmail.com (m_s_n) si vous êtes intéressé pour plus d'infos.
Et sinon si vous pensez avec compris. Let's ROCK tongue.gif

Merci d'avance

phpement,

popi14.
GhostMaster34
Salut,

comme tu dit, ce script est simple à créer tongue.gif

Regarde un peu :

Tu créer la page "ajouter_matchs.php". Dans cette page, tu fait un simple formulaire html avec le nombre de champ que tu souhaite.

Ensuite, tu renvoie sur une autre page par exemple "traite_match.php" qui va traiter ce formulaire et l'insérer dans ta base.

Jusque là, c'est de la rigolade !!

Ensuite, pour la page "matchs.php", tu ressort toutes les infos avec un tableau de type while, ce qui te donnera l'affichage complet (tu peut même afficher en fonction de la date biggrin.gif ) si , si !! Pour les couleurs que tu veux, utilise la condition if et demande de comparer les résultats puis en fonction, tu obtient la couleur désiré tongue.gif

ET pour finir, pour édité ou supprimer, tu recréer une autre page "liste_matchs.php" et tu ressort aussi toutes les infos en while mais tu y ajoute un formulaire à l'intérieur et un bouton pour le traiter puis redirige sur une page de traitance du formulaire pour l'update ou le delete !

Du moins, c'est simple à faire mais il faut connaitre un minimum quand même et moi, je ne peut pas te le faire par manque de temps sad.gif

Mais dit moi une chose : Quel page seront accessible par n'importe qui ?

Car pour moi, tes utilisateurs n'auront accès qu'a la page d'affichage des match et rien d'autres, c'est ca ?

Car sinon, tu peut aussi mettre le formulaire d'ajout de match au même endroit ou tu pourra les modifier et les supprimer !

Comme ca, sur une seule page, tu pourra "ajouter, édité, supprimer" smile.gif
popi14
Merci de ta réponse. Donc je veux que liste_matchs.php et ajouter_matchs.php se soit pas visible par un visiteur. Mais cela peux facilement se protéger par un htacces. Mais justement ce qui est du "while" et du formulaire pour envoyé à la bdd c'est là que j'ai un peu de mal. MAis je chercherais ;) Si quelqu'un veux m'aider ... pas de refus !
GhostMaster34
Bon allez, j'ai 5 minutes devant moi.

Je fait au plus simple car après, il y a d'autre variantes de ce type cool.gif

Vu qu'apparemment tu n'utilise pas les sessions, il va falloir passer certaines valeur dans l'url (sans aucun risque puisque ce ne sont pas des infos de grande importance tongue.gif ) !

On va commencer par ta page,là, ou tu pourra "administrer" tes matchs, c'est à dire "Ajouter, Modifier, Supprimer" !



CODE
<?php
include('connect.php');  \\ Le fichier qui va faire la connexion à ta BDD
echo'Ajouter un match<br /><br />
<form action ="ajout_match.php" method="post">
Date de la rencontre : <input type="text" name="date" /><br />
Nom equipe 1 : <input type="text" name="equipe1" /><br />
Score equipe 1 : <input type="text" name="score1" /><br />
Nom equipe 2 : <input type="text" name="equipe2" /><br />
Score equipe 2 : <input type="text" name="score2" /><br />
<input type="submit" name="submit" value="Ajout du match" />'; ?>


Là tu a le formulaire avec lequel tu va pouvoir ajouter un match avec la date, le nom de l'équipe 1, le nom de l'équipe 2 et leurs scores respectifs.

Maintenant, il faut créer la page "ajout_match.php" qui va traiter ce formulaire et l'ajouter dans ta BDD.

Mais ce sera pour une prochaine fois, je n'ai plus le temps pour aujourd'hui sad.gif

A moins que tu est trouvé ta solution ?

PS : je déplace dans le forum "Programmation" sous forum "PHP"
popi14
Bonjour,

moi j'ai fait ca :

ajouter_match.php (donc le formulaire d'ajout)
CODE
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("war");
?>

<?php if (isset($_GET['modifier_match'])) // Si on demande de modifier une news
{
// On protège la variable "modifier_news" pour éviter une faille SQL
$_GET['modifier_match'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_match']));
// On récupère les infos de la correspondante
$requete = mysql_query('SELECT * FROM clanwars WHERE IDwar=\'' . $_GET['modifier_match'] . '\'');
$donnees = mysql_fetch_array($requete);

// On place le titre et le contenu dans des variables simples
$date = ($donnees['date']);
$tagopp = stripslashes($donnees['tagopp']);
$scorehome = ($donnees['scorehome']);
$scoreopp = ($donnees['scoreopp']);
$report = stripslashes($donnees['report']);
$IDwar = $donnees['IDwar']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
// Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
$date = '';
$tagopp = '';
$scorehome = '';
$scoreopp = '';
$report = '';
$IDwar = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}

?>

<form method="post" action="traite_match.php">

Date:</br>
<input type="text" name="date" value="<?php echo $date; ?>"/>(*)
</br>Sous la forme YYYY-MM-DD</br>
Tag de l'adversaire:</br>
<input type="text" name="tagopp" value="<?php echo $tagopp; ?>" />(*)
</br></br>
Notre score:</br>
<input type="text" name="scorehome" value="<?php echo $scorehome; ?>"/>(*)
</br></br>
Leur score:</br>
<input type="text" name="scoreopp" value="<?php echo $scoreopp; ?>" />(*)
</br></br>
Commentaire:</br>
<textarea name="report"><?php echo $report; ?></textarea>
</br></br></br>
<input type="hidden" name="IDwar" value="<?php echo $IDwar; ?>" />
<input type="submit" value="envoyer"/>

</form>



Ici traite.php donc l'"action" de mon formulaire:
CODE

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("war");

$date = $_POST['date'];
$tagopp = $_POST['tagopp'];
$scorehome = $_POST['scorehome'];
$scoreopp = $_POST['scoreopp'];
$report = $_POST['report'];

if ($date!='' AND $tagopp !='' AND $scorehome!='' AND $scoreopp!=''){
mysql_query("INSERT INTO clanwars (date, tagopp, scorehome, scoreopp, report) values ('$date', '$tagopp', '$scorehome', '$scoreopp', '$report')");
?>
<p> Le match a été correctement ajouté. </p> </br>
<a href="liste_match.php">Voir la liste des matchs</a> </br>
<a href="match.php">Retour aux matchs du site</a> </br>
<a href="index.php">Retour à l'accueil</a>
<?php
}
else {
?>
<p> Veuillez remplir les champs munis du signe suivant: (*) </p>

<?php } ?>




Et enfin, l'endroit ou je liste mes match et où je peux les modifier: liste_match.php
CODE

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("war");

$requete = mysql_query("SELECT * FROM clanwars order by IDwar DESC");

if (isset($_GET['supprimer_match'])) // Si on demande de supprimer un match
{
// Alors on supprime le match correspondant
// On protège la variable "IDwar" pour éviter une faille SQL
mysql_query('DELETE FROM clanwars WHERE IDwar=\'' . $_GET['supprimer_match'] . '\'');
}
?>

<TABLE BORDER>
<CAPTION>Liste des matchs</CAPTION>
<TR>
<TH>Modifier</TH>
<TH>Supprimer</TH>
<TH>Date</TH>
<TH>Tag adverse</TH>
<TH>Résultat</TH>
<TH>Commentaire</TH>
</TR>
<?php
$requete = mysql_query('SELECT * FROM clanwars ORDER BY IDwar DESC');
while ($donnees = mysql_fetch_array($requete) )
{ ?>
<TR>
<TD><?php echo '<a href="ajouter_match.php?modifier_match=' . $donnees['IDwar'] . '">'; ?>Modifier</a></TD>
<TD><?php echo '<a href="liste_match.php?supprimer_match=' . $donnees['IDwar'] . '">'; ?>Supprimer</a></TD>
<TD> <?php echo $donnees['date'] ; ?> </TD>
<TD> <?php echo $donnees['tagopp'] ; ?> </TD>
<TD> <?php echo $donnees['scorehome'] ; ?>-<?php echo $donnees['scoreopp'];?> </TD>
<TD> <?php echo $donnees['report'] ;} ?> </TD>
</TR>
</TABLE>


Cela marche correctement sauf pour modifier .. si je modifie un match existant je retombe sur le formulaire avec les valeurs du match, que je veux modifié, dans le formulaire. Mais lorsque je valide cette modification, cela me garde l'ancien match et me crée le nouveau avec les valeurs que je lui ai donné dans la modification.

J'ai donc 2 matchs au lieu d'un.

Merci quand même GhostMaster34 .. si là tu sais comment faire ;) pas de refus.
popi14
mon problème de modifier est maintenant résolu !!! j'avais mis INSERT INTO au lieu de faire un UPDATE. ME reste plus qu'à faire l'affichage des match avec les couleurs selon le resultat :x
Wolf18
En gros ca ferait ceci :

CODE
if($scorehome > $scoreopp)
{ echo "<td bgcolor=\"#00ff00\"><font color=\"#ffffff\">";
}
if($scorehome == $scoreopp)
{ echo "<td bgcolor=\"#0033ff\"><font color=\"#ffffff\">";
}
if($scorehome < $scoreopp)
{ echo "<td bgcolor=\"#cc0000\"><font color=\"#ffffff\">";
}
echo "<b>".$scorehome." - ".$scoreopp."</b></font></td>";


Si tu sais faire avec les div fais le car ca sera plus propre.

J'ai fais ce système sur mon site : http://www.et4life.fr/wars.php
le principe est vraiment simple en fait, il faut juste manier les conditions et savoir faire une requête sql.
popi14
Euh ... je galère un peu pour mettre à jour mon fichier avec ton systeme ... pourrais-tu (si tu as le temps)me le mettre ) à jour ?

voici le fichier que je dois mettre à jour:

CODE
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("war"); ?>

<TABLE BORDER="0" WIDTH="100%">
<TR>
<TD WIDTH="25%"><b>Date</b></TD>
<TD WIDTH="50%" ALIGN="center"><b>Adversaire</b></TD>
<TD WIDTH="25%" ALIGN="right"><b>Score</b></TD>
</TR>
</TABLE>

<?php $requete = mysql_query('SELECT * FROM clanwars ORDER BY IDwar DESC');
while ($donnees = mysql_fetch_array($requete))
{
?>
<div class="match">
<?php $tagopp = nl2br (stripslashes($donnees ['tagopp']));
$report = nl2br(stripslashes($donnees['report'])); ?>

<TABLE BORDER="0" WIDTH="100%" BGCOLOR="">
<TR>
<TD WIDTH="25%"><?php echo $donnees['date']; ?></TD>
<TD WIDTH="50%" ALIGN="center"><?php echo $donnees['tagopp']; ?></TD>
<TD WIDTH="25%" ALIGN="right"><?php echo $donnees['scorehome']; ?>-<?php echo $donnees['scoreopp']; ?></TD>
</TR>
</TABLE>
</div>
<?php
}
?>


Merci beacoup.
Wolf18
CODE
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("war");
?>

<TABLE BORDER="0" WIDTH="100%">
<TR>
<TD WIDTH="25%"><b>Date</b></TD>
<TD WIDTH="50%" ALIGN="center"><b>Adversaire</b></TD>
<TD WIDTH="25%" ALIGN="right"><b>Score</b></TD>
</TR>
<?php
$requete = mysql_query('SELECT * FROM clanwars ORDER BY IDwar DESC');
while ($donnees = mysql_fetch_array($requete))
{ if($donnees['scorehome'] > $donnees['scoreopp'])
  { // fond vert - victoire
    $bgcolor="#00ff00";
  }
  if($donnees['scorehome'] == $donnees['scoreopp'])
  { // fond bleu - égalité
    $bgcolor="#0033ff";
  }
  if($donnees['scorehome'] < $donnees['scoreopp'])
  { // fond rouge - défaite
    $bgcolor="#cc0000";
  }
?>
<div class="match">
<?php
$tagopp = nl2br (stripslashes($donnees ['tagopp']));
$report = nl2br(stripslashes($donnees['report']));
?>
<TR>
<TD><?php echo $donnees['date']; ?></TD>
<TD ALIGN="center"><?php echo $donnees['tagopp']; ?></TD>
<TD ALIGN="right" bgcolor="<?php echo $bgcolor ?>"><?php echo $donnees['scorehome']; ?>-<?php echo $donnees['scoreopp']; ?></TD>
</TR>
</div>
<?php
}
?>
</TABLE>


Je pense que ca devrait être bon avec ça.
popi14
Cela marche nikel ! Merci bien ... j'ai juste changé pour que ca soit la couleur d'écriture qui change et non la couleur de fond de la case.

Car maintenant j'essaye de faire que 1 ligne sur 2 soit d'une couleur et les autres du autre couleur. J'ai pensé faire avec les modulo et l'IDwar ... mais j'y arrive pas.
manhim
SI tu a une boucle, fait quelquechose dans le genre :

CODE
$ibg = 0;
while ou for() {
...
$ibg++
if ($ibg >= 2) $ibg = 0;
}


Et utiliser la varibale ibg pour afficher la couleur de fond voulue.
C\'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d\'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.