Organisation de l'économie pour un jeu

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2007, 19:40

quel message d'erreur ?

Normalement ceci devrait fonctionner
if(empty($tmp))            
        echo "Vos derniers relevés de compte ne sont pas encore arrivés";
après la boucle while.

2eme question : Non pas de souci

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 445 Messages

22 nov. 2007, 19:44

As tu bien enleve cette ligne (avec tout ses crochets) :
if($donnees = mysql_fetch_assoc($requete)) 
Puis redonnes ton code afin que l'on saches ou tu en es des corrections proposé.

Eléphant du PHP | 206 Messages

22 nov. 2007, 21:01

Voici le code
le message d'erreur dont je parlais est celui placé dans le echo :)
<?php
$add =0;

while ($add<=1)
{
$requete = mysql_query('SELECT typeeconomie.id_type_economie AS id_type_economie, nom_type_economie, montant, signe 
FROM economie 
LEFT JOIN typeeconomie
USING(id_type_economie)
WHERE id_equipe = '.$_SESSION['id_equipe'].' AND nom_type_economie <> "caisse" AND semaine = '.date("W").'-'.$add) or die (mysql_error());

?>

<div class="corps-sp1">
<h2> <?php if($add == 0) echo "Cette semaine"; else  echo "La semaine dernière"; ?></h2>
<?php



$tmp = "";
$tab = array();

//Pas besoin de tri sur la requête = gain de performance
While  ($donnees = mysql_fetch_assoc($requete)) 
{
    $tmp = $donnees['signe'] ;   // sauvegarde du type pour une utilisation plus simple $tmp
 
    //  s'il n'y a pas encore de données (nom et montant de l'économie) dans le tableau résultat on
    //  initialise à vide pour pouvoir par la suite concaténer sans avoir une erreur lors de la 1ère
    //  concaténation avec une variable qui n'existerai pas le cas contraire.    
    if(empty($tab["$tmp"]))        
        $tab["$tmp"] = ''; 	
		
	 if(empty($tmp))        	
		echo "Vos derniers relevés de compte ne sont pas encore arrivés";
		
    // ajout des informations dans le tableau à l'index $tmp. Premet de ranger tous les "depenses" à
    // la suite ici séparées par un saut de ligne
    $tab["$tmp"] .= '<tr><td>'.$donnees['nom_type_economie'].' : </td><td>'.$donnees['montant'].'</td></tr>';
}


foreach( $tab as $key => $value)
{

   echo '<table style="float:left;margin-right: 20px" >';
   echo '<th colspan="2">'.$key.'</th>';
   echo $value; 
   echo '</table>'; 
} 

echo "</div>";

$add++;

}

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2007, 21:11

Ah ben oui forcément :wink:
Là où tu as placé ce test tu auras forcément des messages affichés puisque si tu passes dans la boucle ça veut dire qu'il y a des résultats :wink:

Il faut le mettre après le while()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 206 Messages

22 nov. 2007, 21:24

Merci ça marche bien :)


une seconde question me trotte par la tete, dans ce code y a t'il quelque chose qui pourrait faire en sorte que ça s'affiche mal si je modifie les valeurs de mon ENUM signe ?
je demandais ça car quand je change les valeurs dans la BDD, le script ne marche plus. Les 2 catégories ne se séparent plus etc.

Eléphant du PHP | 445 Messages

22 nov. 2007, 21:26

Du moment que signe est NOT NULL et est different de :
0 (numerique)
"0" (chaine de caractere)
"" (chaine vide)

Eléphant du PHP | 206 Messages

22 nov. 2007, 21:32

Merci beaucoup :) tout marche impeccable pour l'instant.

Bonne soirée

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2007, 21:43

Ok... pour la lisibilité future vaut mieux clôturer ce sujet et en ouvrir un nouveau pour d'autres questions. :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 206 Messages

22 nov. 2007, 21:58

Mais il y a des chances que je sois confronté à d'autre sproblème concernant toujours la partie économie lol.

En même temps vous êtes géniaux sur ce forum, rapide efficace, clair, on apprend beaucoup :)

Merci pour tous ;)