par
Ryle » 06 sept. 2006, 10:23
Quand on te parler d'indenter et d'aligner les différentes portions du code, il ne s'agit pas de tout coller à gauche, mais de mettre des tabulations pour que toutes les commandes qui découlent de la précédent soit décalées (en règle générale, l'ouverture d'une accolade implique un décalage d'une tabulation, la fermeture, le retour à la position initiale).
Voici ce que donne ton code indenté correctement, c'est quand même plus facile de voir où commencent et s'arrêtent les boucles et les if nan ?
<?php
require_once('cagnes.php');
include ("conffile.php");
@ mysql_pconnect($hostname, $user, $passwd) or die ("Impossible de se connecter");
mysql_select_db($dbname);
// Matchs aller
for($i=1;$i<=$nb;$i++){
$journee = $i;
$match_aller = 1;
$temp = "date_aller".$i;
eval('$date = $'.$temp.';');
$semaine = strtotime($date);
$semaine = strftime("%W", $semaine);
$temp = "no_match_aller".$i;
eval('$no_match = $'.$temp.';');
$temp = "visiteur_retour".$i;
eval('$test = $'.$temp.';');
if ($test == "") {
$adomicile = 1;
$temp = "visiteur_aller".$i;
eval('$adversaire = $'.$temp.';');
} else {
$adomicile = 0;
$temp = "visiteur_retour".$i;
eval('$adversaire = $'.$temp.';');
}
$sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","","","","","","","","","",'.$semaine.')';
$nbsql += 1;
$result_ajout = mysql_query($sql_ajout);
$ecrire = 0;
}
// Matchs retour
for($i=1;$i<=$nb;$i++){
$journee = $nb + $i;
$match_aller = 0;
$temp = "date_retour".$i;
eval('$date = $'.$temp.';');
$semaine = strtotime($date);
$semaine = strftime("%W", $semaine);
$temp = "no_match_retour".$i;
eval('$no_match = $'.$temp.';');
$temp = "visiteur_aller".$i;
eval('$test = $'.$temp.';');
if ($test == "") {
$adomicile = 1;
$temp = "visiteur_retour".$i;
eval('$adversaire = $'.$temp.';');
} else {
$adomicile = 0;
$temp = "visiteur_aller".$i;
eval('$adversaire = $'.$temp.';');
}
$sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","","","","","","","","","",'.$semaine.')';
$nbsql += 1;
$result_ajout = mysql_query($sql_ajout);
$ecrire = 0;
}
// echo "<meta http-equiv=\"refresh\" content=\"2; url=insert_calendar.php?nb=\">";
?>
Quant à ton problème, à quoi est égale $nb ? Les variables $visiteur_aller1, $visiteur_aller2 ... existent elles ?
A la place des eval, j'utiliserais la syntaxe $$ ou ${} de php pour lire les valeurs. Ca me semble plus simple : ${"visiteur_aller".$i}
Quand on te parler d'indenter et d'aligner les différentes portions du code, il ne s'agit pas de tout coller à gauche, mais de mettre des tabulations pour que toutes les commandes qui découlent de la précédent soit décalées (en règle générale, l'ouverture d'une accolade implique un décalage d'une tabulation, la fermeture, le retour à la position initiale).
Voici ce que donne ton code indenté correctement, c'est quand même plus facile de voir où commencent et s'arrêtent les boucles et les if nan ? :)
[php]<?php
require_once('cagnes.php');
include ("conffile.php");
@ mysql_pconnect($hostname, $user, $passwd) or die ("Impossible de se connecter");
mysql_select_db($dbname);
// Matchs aller
for($i=1;$i<=$nb;$i++){
$journee = $i;
$match_aller = 1;
$temp = "date_aller".$i;
eval('$date = $'.$temp.';');
$semaine = strtotime($date);
$semaine = strftime("%W", $semaine);
$temp = "no_match_aller".$i;
eval('$no_match = $'.$temp.';');
$temp = "visiteur_retour".$i;
eval('$test = $'.$temp.';');
if ($test == "") {
$adomicile = 1;
$temp = "visiteur_aller".$i;
eval('$adversaire = $'.$temp.';');
} else {
$adomicile = 0;
$temp = "visiteur_retour".$i;
eval('$adversaire = $'.$temp.';');
}
$sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","","","","","","","","","",'.$semaine.')';
$nbsql += 1;
$result_ajout = mysql_query($sql_ajout);
$ecrire = 0;
}
// Matchs retour
for($i=1;$i<=$nb;$i++){
$journee = $nb + $i;
$match_aller = 0;
$temp = "date_retour".$i;
eval('$date = $'.$temp.';');
$semaine = strtotime($date);
$semaine = strftime("%W", $semaine);
$temp = "no_match_retour".$i;
eval('$no_match = $'.$temp.';');
$temp = "visiteur_aller".$i;
eval('$test = $'.$temp.';');
if ($test == "") {
$adomicile = 1;
$temp = "visiteur_retour".$i;
eval('$adversaire = $'.$temp.';');
} else {
$adomicile = 0;
$temp = "visiteur_aller".$i;
eval('$adversaire = $'.$temp.';');
}
$sql_ajout = 'insert into tb_matchs values (0,'.$journee.',"'.$date.'","",'.$id_equipe.',"'.$no_match.'",'.$match_aller.','.$adomicile.',"'.$adversaire.'","","","","","","","","","",'.$semaine.')';
$nbsql += 1;
$result_ajout = mysql_query($sql_ajout);
$ecrire = 0;
}
// echo "<meta http-equiv=\"refresh\" content=\"2; url=insert_calendar.php?nb=\">";
?>[/php]
Quant à ton problème, à quoi est égale $nb ? Les variables $visiteur_aller1, $visiteur_aller2 ... existent elles ?
A la place des eval, j'utiliserais la syntaxe $$ ou ${} de php pour lire les valeurs. Ca me semble plus simple : ${"visiteur_aller".$i}