par
spirou » 01 nov. 2005, 21:52
Je ne voit pas le probleme dans tous les cas $score1 contiendra le scrore de l'equipe 1 ($equipe1) respectivement $score2 et equipe 2.
Oui en fait j'étais parti sur quelquechose de compliqué, en faisant comme tu dis, c'est effectivement plus simple :p
La c'est plus clair

Donc il faut que tu initialise une variable a 0 avant la boucle qui prend sur chaque ligne le total de but (avec le code montré précédemment, par exemple). Mais l'addition ne doit se faire que sur les 10 lignes de scores ensuite affiché et remis a 0 pour les journées suivantes.
J'ai essayé, mais je n'arrive pas à réinitialiser la variable à 0, et l'inscrire dans mon tableau à chaque fois qu'elle a atteint 10, qu'est ce que je fais de travers ?
<?php
$fichierFootD2 = 'resultatsD2.txt';
echo "<table id="resultats">";
if (file_exists($fichierFootD2)) // si le fichier est accessible
{
$statfoot = fopen("resultatsD2.txt", "r"); // ouverture du fichier en lecture
$totalScore1 = 0;
while ($ligne = fgets($statfoot)) // tant qu'il y a des lignes à lire dans le fichier
{
if(substr_count($ligne, '|') > 0 ) // si le caractère | est présent dans la ligne
{
list($equipe1, $score, $equipe2) = explode("|", $ligne); // défni chaque variable séparé par le symbole |
echo "
<tr>
<td >$equipe1</td>
<td>$score</td>
<td>$equipe2</td>
</tr>";
list($score1, $score2) = explode("-", $score); // separe les chiffres de $score en deux variables
$compteur = 1;
for ($compteur; $compteur <= 10; $compteur++) // compteur pour chaque journée
{
$totalScore1 = $totalScore1 + $score1; // additionne le nombre de $score1 de chaque ligne
if ($compteur = 10)
{
echo "<tr><td colspan="3">Total buts à domicile : $totalScore1</td></tr>";
$totalScore = 0;
}
}
}
elseif (trim($ligne)!= "") // si la ligne ne contient pas de retour à la ligne
{
echo "<tr><th colspan="3">$ligne</th></tr>"; // inscrit la ligne
}
else // sinon $ligne ne vaut rien
{
$ligne = "";
}
}
fclose($statfoot); // fermeture du fichier
}
else
{ // sinon retourne cette erreur
echo "<tr><td>Erreur 10 (accès au fichier)</td></tr>";
}
echo "</table>";
?>
tu as certainement un ou des espaces sur ces lignes, pour que le teste fonctionne correctement il ne faut y avoir qu'un saut de ligne. Mais tu peut faire autrement avec trim() et ainsi remplacer:
PHP:
elseif ($ligne != "\r\n")
par
PHP:
elseif (trim($ligne) != "")
Merci, ça fonctionne impec

Pourtant il n'y a pas d'espace dans mes lignes.
Ah oui, j'aurais une autre p'tite question, comment rechercher efficacement une fonction dont j'aurais besoin sur php.net, car je suis un peu perdu dans la jungle, il y en a tellement
Merci.
[quote="Truc"]
Je ne voit pas le probleme dans tous les cas $score1 contiendra le scrore de l'equipe 1 ($equipe1) respectivement $score2 et equipe 2.
[/quote]
Oui en fait j'étais parti sur quelquechose de compliqué, en faisant comme tu dis, c'est effectivement plus simple :p
[quote="Truc"]
La c'est plus clair :wink:
Donc il faut que tu initialise une variable a 0 avant la boucle qui prend sur chaque ligne le total de but (avec le code montré précédemment, par exemple). Mais l'addition ne doit se faire que sur les 10 lignes de scores ensuite affiché et remis a 0 pour les journées suivantes.[/quote]
J'ai essayé, mais je n'arrive pas à réinitialiser la variable à 0, et l'inscrire dans mon tableau à chaque fois qu'elle a atteint 10, qu'est ce que je fais de travers ? :?
[php]
<?php
$fichierFootD2 = 'resultatsD2.txt';
echo "<table id="resultats">";
if (file_exists($fichierFootD2)) // si le fichier est accessible
{
$statfoot = fopen("resultatsD2.txt", "r"); // ouverture du fichier en lecture
$totalScore1 = 0;
while ($ligne = fgets($statfoot)) // tant qu'il y a des lignes à lire dans le fichier
{
if(substr_count($ligne, '|') > 0 ) // si le caractère | est présent dans la ligne
{
list($equipe1, $score, $equipe2) = explode("|", $ligne); // défni chaque variable séparé par le symbole |
echo "
<tr>
<td >$equipe1</td>
<td>$score</td>
<td>$equipe2</td>
</tr>";
list($score1, $score2) = explode("-", $score); // separe les chiffres de $score en deux variables
$compteur = 1;
for ($compteur; $compteur <= 10; $compteur++) // compteur pour chaque journée
{
$totalScore1 = $totalScore1 + $score1; // additionne le nombre de $score1 de chaque ligne
if ($compteur = 10)
{
echo "<tr><td colspan="3">Total buts à domicile : $totalScore1</td></tr>";
$totalScore = 0;
}
}
}
elseif (trim($ligne)!= "") // si la ligne ne contient pas de retour à la ligne
{
echo "<tr><th colspan="3">$ligne</th></tr>"; // inscrit la ligne
}
else // sinon $ligne ne vaut rien
{
$ligne = "";
}
}
fclose($statfoot); // fermeture du fichier
}
else
{ // sinon retourne cette erreur
echo "<tr><td>Erreur 10 (accès au fichier)</td></tr>";
}
echo "</table>";
?>[/php]
[quote="Truc"]
tu as certainement un ou des espaces sur ces lignes, pour que le teste fonctionne correctement il ne faut y avoir qu'un saut de ligne. Mais tu peut faire autrement avec trim() et ainsi remplacer:
PHP:
[php]elseif ($ligne != "\r\n")[/php]
par
PHP:
[php]elseif (trim($ligne) != "")[/php]
[/quote]
Merci, ça fonctionne impec :D
Pourtant il n'y a pas d'espace dans mes lignes.
Ah oui, j'aurais une autre p'tite question, comment rechercher efficacement une fonction dont j'aurais besoin sur php.net, car je suis un peu perdu dans la jungle, il y en a tellement :D
Merci.