Page 1 sur 1

Sauvegarder une donnée pour l'utiliser + tard

Posté : 19 sept. 2012, 20:03
par YADev
Bonjour,

J'ai un code PHP qui récupère des données dans une base de donnée, ensuite il les affiches.

Le voici :
<?php

	try
    {
		// Connexion BDD.
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$bdd = new PDO('mysql:host=localhost;dbname=jsp', 'root', '', $pdo_options);
       
        $sql = $bdd->query("SELECT * FROM engins WHERE cs = 'Casteljaloux' AND carburant > 10 AND etat = 'green'");
       
        while ($row = $sql->fetch())
        {
		  $array = $bdd->query("SELECT COUNT(engin)FROM engins WHERE fonction = '" . $row['fonction'] . "'");
		  $nb_total = $array->fetchColumn();
		  
		  $array2 = $bdd->query("SELECT COUNT(engin) FROM engins 
		  							WHERE etat = 'green' AND fonction = '" . $row['fonction'] . "' AND carburant > 10");	
		  $nb_dispo = $array2->fetchColumn();
		  				
		  // Affichage après traitement dynamique.			  
		  echo $nb_total . ' <strong>[' . $row['fonction'] . ']</strong> (' . $nb_dispo . '/' . $nb_total . ') : <br />';	
		  echo '<input type="checkbox" name="' . $row['engin'] . '_' . intval($row['numero']) . '" value="' . intval($row['id']) . '" /> ';
		  echo $row['engin'] . '' . intval($row['numero']) . ' <span style="font-weight: bold;">CI ' . $row['cs'] . '</span> <br />';
		  		  
		  if ($row['carburant'] > 100 || !$row['carburant'])
		  {
			  echo '<span style="font-weight: bold; color: red;">Une erreur est survenue, contactez le support (Jeunesapeur47) !</span>';
		  }
		 		  
		  elseif ($row['carburant'] < 30)
		  {
			  echo '<span style="font-weight: bold; color: red;">
			  		Attention, le niveau de carburant est inférieur a 30% (L\'engin passera indisponible a partir de 10 %) !</span>';
		  }
        }
       
        $sql->closeCursor();
    }
	
    catch(Exception $e)
    {
        die('Une erreur est survenue, veuillez nous éxcuser de la gêne occasionée : '.$e->getMessage());
    }

?>
Le problème est que la boucle réécrit plusieurs fois le même titre même quand c'est le même :
Capture.PNG
Je dois donc indiquer à PHP que si jamais le titre est le même il doit fusionner les données pour n'avoir qu'un seul titre et toutes les données réunies. J'ai pensé à un petit truc, faire quelque chose comme : $save_name = $row['titre'] et plus tard (mais où ??) je dis à php « Si le titre est différent du précédent ... sinon ... »

Yes, no ? ^^

Merci de vos indications.

Re: Sauvegarder une donnée pour l'utiliser + tard

Posté : 19 sept. 2012, 21:09
par xTG
$flags = '';
While(...){
  if( $row['flag'] == $flag ){
    echo $flag['flag'];
    $flag = $row['flag'];
  }
}
;)

Re: Sauvegarder une donnée pour l'utiliser + tard

Posté : 23 sept. 2012, 17:45
par YADev
C'est presque fonctionnel ^^

Mais il y a un problème quand une fonction portant un autre nom se retrouve entre deux autres du même nom dans la BDD, ça empêche la fusion :|
Pour le moment voici le code :
		  if ($row['fonction'] != $save)
		  {
			  echo $nb_total . ' <strong>[' . $row['fonction'] . ']</strong> (' . $nb_dispo . '/' . $nb_total . ') : <br />';
			  $save = $row['fonction'];
		  }
		  
		  echo '<input type="checkbox" name="' . $row['engin'] . '_' . intval($row['numero']) . '" value="' . intval($row['id']) . '" /> ';
		  echo $row['engin'] . '' . intval($row['numero']) . ' <span style="font-weight: bold;">CI ' . $row['cs'] . '</span> <br />';
Une idée ?