8721 sujets

Développement web côté serveur, CMS

Bonjour , j'ai le script suivant qui marche parfaitement

<pre>
<?php
error_reporting(0);
 
set_time_limit(3600);
mysql_connect("localhost","root","") or die("Impossible de se connecter");
mysql_select_db("supervision") or die("pas possible de trouver la base");
 
 
$result = mysql_query("SELECT nom_groupe, etat_groupe, nom_du_service, port, adresse_ip, nom_hote FROM groupe_service, service WHERE etat_groupe = 'actif' AND groupe_service.id_service = service.id_service ORDER BY nom_groupe" );
while ($ligne = mysql_fetch_array($result)) {
 
echo "$ligne[0]</br>";
$fp = fsockopen($ligne[4], $ligne[3], $errstr, $errno , 10); 
if (!$fp) { 
 
echo "Service $ligne[2] on $ligne[5] is Down </br>" ;
}
 
else { 
 
echo "Service $ligne[2] on $ligne[5] is Up </br>" ;
 
while (!feof($fp)) 
{
 echo fgets($fp, 128); 
} 
fclose($fp); } 
}
 
?>
</pre>

et qui me permet d'avoir un affichage de ce genre :
groupe
Service HTTP on machine is Down
groupe
Service HTTP on LAPTOP is Down
groupe
Service FTP on ordinateur de bureau is Down
groupe 2
Service HTTPS on laptop is Down
groupe 2
Service LDAP on router is Down
groupemodif
Service Telnet on equipement2 is Down
groupemodif
Service Telnet on equipement2 is Down

Cependant j'aimerai que le nom du groupe ne s'affiche qu'une seule fois pour un même groupe .Quelqu'un aurait une idée?
Modifié par kiwilicious (23 Apr 2014 - 13:52)
Administrateur
Bonjour,

il faudrait stocker dans une variable le groupe qui vient juste d'être affiché et à chaque affichage éventuel, tester si le groupe nouveau est différent de celui stocké et seulement dans ce cas l'afficher.
Merci pour ta réponse , j'ai rajouté les lignes suivantes au code et j'ai eu l'affichage que je voulais Smiley biggrin


if($ligne[0]!=$nomgroup)
{
   echo "$ligne[0]</br>";
   $nomgroup=$ligne[0];
}