par
sadeq » 24 janv. 2011, 11:01
Ok, j'ai compris le contexte, donc chaque base $categorie.'_'.$classe contient une table "resultats". Et puisque tu a créé les bases adéquates c'est OK.
Par contre, j'ai une proposition de simplification si bien sûr tu ne comptes pas distribuer les bases de données ailleurs, il suffit tout simplement d'utiliser une seule table "resultats" dans la base de données principale "partie_jouee" dont la structure serait la suivante:
create table resultats (
categorie varchar(255),
classe varchar(255),
equipe varchar(255),
victoire int,
defaite int,
nulle int,
primary key (equipe) );
Puis insérer les résultats des matchs dans cette table exactement comme tu fais actuellement dans ton script, qu'on va légèrement modifier au niveau de l'instruction INSERT pour prendre en compte la nouvelle structure.
Voici la portion du script modifié:
$user_name="Marc";
$password="J0nathan";
$database="partie_jouee"; //base de données principale
$server="127.0.0.1";
$db_connect = mysql_connect($server,$user_name,$password) or die (mysql_error()); // Se connecter au serveur MySQL
mysql_select_db($database,$db_connect) or die (mysql_error()); // Se connecte à la base de donnée
//Vérifie si équipe locale a fait match nul et ajoute l'information dans la table de résultats (resultats)
if ($pointageLocal == $pointageVisiteur)
{
$equipe1 = $_POST['equipeLocale'];
$equipe2 = $_POST['equipeVisiteur'];
$nulle = 1;
$sqlinsertN1 = "INSERT INTO resultats (categorie, classe, equipe, nulle) VALUES ('$categorie', '$classe', '$equipe1', '$nulle') ON duplicate KEY UPDATE nulle = nulle + 1";
$sqlinsertN2 = "INSERT INTO resultats (categorie, classe, equipe, nulle) VALUES ('$categorie', '$classe', '$equipe2', '$nulle') ON duplicate KEY UPDATE nulle = nulle + 1";
// Enregistrer un match nul équipe 1
$requete = mysql_query($sqlinsertN1 , $db_connect);
if ( !$requete ) echo (mysql_error());
// Enregistrer un match nul équipe 2
$requete = mysql_query($sqlinsertN2 , $db_connect);
if ( !$requete ) echo (mysql_error());
// Fin de l'enregistrement
if ($requete) echo "Résultat enregistré : Egalité entre $equipe1 et $equipe2 ($pointageLocal/$pointageVisiteur)";
}
else
{
//Vérifie si équipe locale est gagnante et ajoute l'information dans la table de résultats (resultats)
if ($pointageLocal > $pointageVisiteur)
{
$gagnant = $_POST['equipeLocale'];
$perdant = $_POST['equipeVisiteur'];
$pointsG = $pointageLocal;
$pointsP = $pointageVisiteur;
}
else if($pointageLocal < $pointageVisiteur)
{
$gagnant = $_POST['equipeVisiteur'];
$perdant = $_POST['equipeLocale'];
$pointsG = $pointageVisiteur;
$pointsP = $pointageLocal;
}
//
$victoire = 1;
$defaite = 1;
$sqlinsertG = "INSERT INTO resultats (categorie, classe, equipe, victoire) VALUES ('$categorie', '$classe', '$gagnant', '$victoire') ON duplicate KEY UPDATE victoire = victoire + 1";
$sqlinsertP = "INSERT INTO resultats (categorie, classe, equipe, defaite) VALUES ('$categorie', '$classe', '$perdant', '$defaite') ON duplicate KEY UPDATE defaite = defaite + 1";
// Enregistrer une victoire
$requete = mysql_query($sqlinsertG , $db_connect);
if ( !$requete ) echo (mysql_error());
$requete = mysql_query($sqlinsertP , $db_connect);
if ( !$requete ) echo (mysql_error());
// Fin de l'enregistrement
if ($requete) echo "Résultat enregistré : $gagnant contre $perdant ($pointsG/$pointsP)";
}
Voila et A+
Ok, j'ai compris le contexte, donc chaque base $categorie.'_'.$classe contient une table "resultats". Et puisque tu a créé les bases adéquates c'est OK.
Par contre, j'ai une proposition de simplification si bien sûr tu ne comptes pas distribuer les bases de données ailleurs, il suffit tout simplement d'utiliser une seule table "resultats" dans la base de données principale "partie_jouee" dont la structure serait la suivante:
[sql]create table resultats (
categorie varchar(255),
classe varchar(255),
equipe varchar(255),
victoire int,
defaite int,
nulle int,
primary key (equipe) );
[/sql]
Puis insérer les résultats des matchs dans cette table exactement comme tu fais actuellement dans ton script, qu'on va légèrement modifier au niveau de l'instruction INSERT pour prendre en compte la nouvelle structure.
Voici la portion du script modifié:
[php]$user_name="Marc";
$password="J0nathan";
$database="partie_jouee"; //base de données principale
$server="127.0.0.1";
$db_connect = mysql_connect($server,$user_name,$password) or die (mysql_error()); // Se connecter au serveur MySQL
mysql_select_db($database,$db_connect) or die (mysql_error()); // Se connecte à la base de donnée
//Vérifie si équipe locale a fait match nul et ajoute l'information dans la table de résultats (resultats)
if ($pointageLocal == $pointageVisiteur)
{
$equipe1 = $_POST['equipeLocale'];
$equipe2 = $_POST['equipeVisiteur'];
$nulle = 1;
$sqlinsertN1 = "INSERT INTO resultats (categorie, classe, equipe, nulle) VALUES ('$categorie', '$classe', '$equipe1', '$nulle') ON duplicate KEY UPDATE nulle = nulle + 1";
$sqlinsertN2 = "INSERT INTO resultats (categorie, classe, equipe, nulle) VALUES ('$categorie', '$classe', '$equipe2', '$nulle') ON duplicate KEY UPDATE nulle = nulle + 1";
// Enregistrer un match nul équipe 1
$requete = mysql_query($sqlinsertN1 , $db_connect);
if ( !$requete ) echo (mysql_error());
// Enregistrer un match nul équipe 2
$requete = mysql_query($sqlinsertN2 , $db_connect);
if ( !$requete ) echo (mysql_error());
// Fin de l'enregistrement
if ($requete) echo "Résultat enregistré : Egalité entre $equipe1 et $equipe2 ($pointageLocal/$pointageVisiteur)";
}
else
{
//Vérifie si équipe locale est gagnante et ajoute l'information dans la table de résultats (resultats)
if ($pointageLocal > $pointageVisiteur)
{
$gagnant = $_POST['equipeLocale'];
$perdant = $_POST['equipeVisiteur'];
$pointsG = $pointageLocal;
$pointsP = $pointageVisiteur;
}
else if($pointageLocal < $pointageVisiteur)
{
$gagnant = $_POST['equipeVisiteur'];
$perdant = $_POST['equipeLocale'];
$pointsG = $pointageVisiteur;
$pointsP = $pointageLocal;
}
//
$victoire = 1;
$defaite = 1;
$sqlinsertG = "INSERT INTO resultats (categorie, classe, equipe, victoire) VALUES ('$categorie', '$classe', '$gagnant', '$victoire') ON duplicate KEY UPDATE victoire = victoire + 1";
$sqlinsertP = "INSERT INTO resultats (categorie, classe, equipe, defaite) VALUES ('$categorie', '$classe', '$perdant', '$defaite') ON duplicate KEY UPDATE defaite = defaite + 1";
// Enregistrer une victoire
$requete = mysql_query($sqlinsertG , $db_connect);
if ( !$requete ) echo (mysql_error());
$requete = mysql_query($sqlinsertP , $db_connect);
if ( !$requete ) echo (mysql_error());
// Fin de l'enregistrement
if ($requete) echo "Résultat enregistré : $gagnant contre $perdant ($pointsG/$pointsP)";
}
[/php]
Voila et A+