Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2010, 15h13   #1
Membre à l'essai
 
Inscription : novembre 2009
Messages : 93
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 93
Points : 22
Points : 22
Par défaut Affichage d'un tableau avec les valeurs regroupées

Bonjour,

Je récupère un tableau dans lequel j'ai toutes les nom colonnes d'une table ou a été trouvé une valeur recherchée.

Ma table a pour colonnes:
HOSTNAME,OSVERSION,KERNEL,SERVERTYPE
Je fais une recherche sur tous les champs pour la valeur like "%sun%".
Dans un tableau je récupère a chaque fois le nom de la colonne ou a été trouvé la valeur sun.
J'obtiens un tableau de ce style:

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Array
(
    [0] => Array
        (
            [SERVERTYPE] => Sun Microsystems sun4u Sun Fire 15000
        )
    [1] => Array
        (
            [SERVERTYPE] => Sun Microsystems sun4u Sun Enterprise 420R
        )
    [2] => Array
        (
            [SERVERTYPE] => Sun Microsystems sun4u Sun Enterprise 420R
        )
etc... jusqu'à:
[404] => Array
        (
            [OSVERSION] => SunOS 5.10
        )
    [405] => Array
        (
            [OSVERSION] => SunOS 5.10
        )

J'aimerai afficher tous les résultats contenu dans ce tableau mais regroupé par valeur.
Par exemple dans le tableau aux valeur 1 et 2 au lieu d'afficher deux fois la ligne, afficher qu'une ligne avec le nombre entre parenthèse (2).
Comment regrouper les valeurs dans un tableau? J'ai beau chercher dans les fonctions proposées j'ai pas trouvé...

Si quelqu'un a une idée je suis preneur

Merci d'avance!
Tonii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 15h20   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Montres nous ton code pour qu'on puisse t'aider

tu devras peut être faire une requête avec group by pour regrouper les données

http://dev.mysql.com/doc/refman/5.0/...functions.html
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 15h22   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
si t'as PDO ca se fait avec FETCH_GROUP
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 16h42   #4
Membre à l'essai
 
Inscription : novembre 2009
Messages : 93
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 93
Points : 22
Points : 22
Voici la partie de mon code qui récupère les données dans le tableau:

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
while ($myrow_fixe_inf_serveur=$Cnx_fixe->row())
{
    if($pos = stristr($myrow_fixe_inf_serveur["HOSTNAME"], $chaine) !== false) {
	$nb_fixe_inf_serveur++;
	$tab_fixe_infserveur_detail[] = $myrow_fixe_inf_serveur;
	$tab_fixe_infserveur[] = array("HOSTNAME" => $myrow_fixe_inf_serveur["HOSTNAME"]);
    }
	else if($pos = stristr($myrow_fixe_inf_serveur["SERVERTYPE"], $chaine) !== false) {
	$nb_fixe_inf_serveur++;
	$tab_fixe_infserveur_detail[] = $myrow_fixe_inf_serveur;
	$tab_fixe_infserveur[] = array("SERVERTYPE" => $myrow_fixe_inf_serveur["SERVERTYPE"]);
    }
	else if($pos = stristr($myrow_fixe_inf_serveur["PROCTYPE"], $chaine) !== false) {
	$nb_fixe_inf_serveur++;
	$tab_fixe_infserveur_detail[] = $myrow_fixe_inf_serveur;
	$tab_fixe_infserveur[] = array("PROCTYPE" => $myrow_fixe_inf_serveur["PROCTYPE"]);
    }
	else if($pos = stristr($myrow_fixe_inf_serveur["OSVERSION"], $chaine) !== false) {
	$nb_fixe_inf_serveur++;
	$tab_fixe_infserveur_detail[] = $myrow_fixe_inf_serveur;
	$tab_fixe_infserveur[] = array("OSVERSION" => $myrow_fixe_inf_serveur["OSVERSION"]);
    }
 
}

La tableau $tab_fixe_infserveur contient donc l'exemple de mon premier message:
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Array
(
[0] => Array
(
[SERVERTYPE] => Sun Microsystems sun4u Sun Fire 15000
)
[1] => Array
(
[SERVERTYPE] => Sun Microsystems sun4u Sun Enterprise 420R
)
[2] => Array
(
[SERVERTYPE] => Sun Microsystems sun4u Sun Enterprise 420R
)
etc... jusqu'à:
[404] => Array
(
[OSVERSION] => SunOS 5.10
)
[405] => Array
(
[OSVERSION] => SunOS 5.10
)
J'aimerais afficher
Citation:
Sun Microsystems sun4u Sun Fire 15000 (1) - SERVERTYPE
Sun Microsystems sun4u Sun Enterprise 420R (2) - SERVERTYPE
Et non avoir:
Citation:
Sun Microsystems sun4u Sun Fire 15000 - SERVERTYPE
Sun Microsystems sun4u Sun Enterprise 420R - SERVERTYPE
Sun Microsystems sun4u Sun Enterprise 420R - SERVERTYPE
J'ai deux fois la même ligne...
Le group by ne fonctionne que sur une colonne or dans mon cas je peux avoir deux fois la même valeur sur la colonne SERVERTYPE ou sur la colonne OSVERSION...

Si j'ai PDO? Qu'est-ce que PDO?

Merci d'avance pour vos réponses
Tonii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 16h54   #5
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
affiche aussi ta requête avec le group by
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h20   #6
Membre à l'essai
 
Inscription : novembre 2009
Messages : 93
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 93
Points : 22
Points : 22
La voici mais je pense pas que ça vienne de la requête...

Code :
1
2
3
select HOSTNAME,OSVERSION,KERNEL,SERVERTYPE,MEMORY,PROCTYPE,NBPROC,NBTHREAD,ZONEDAD from ECONTROLE.INFO_SERVER 
where lower(HOSTNAME) like lower('%$chaine%') or lower(OSVERSION) like lower('%$chaine%') or lower(SERVERTYPE) like lower('%$chaine%')
or lower(PROCTYPE) like lower('%$chaine%') ORDER BY HOSTNAME, SERVERTYPE, PROCTYPE, OSVERSION
Merci d'avance!
Tonii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h24   #7
Membre à l'essai
 
Inscription : novembre 2009
Messages : 93
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 93
Points : 22
Points : 22
Re bonjour,

Je vais m'y prendre autrement et j'aimerais savoir comment afficher toutes les valeurs d'un tableau ayant la même clé?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Array
(
    [0] => Array
        (
            [SERVERTYPE] => Sun Microsystems sun4u Sun Fire 15000
        )
    [1] => Array
        (
            [SERVERTYPE] => Sun Microsystems sun4u Sun Enterprise 420R
        )
    [2] => Array
        (
            [SERVERTYPE] => Sun Microsystems sun4u Sun Enterprise 420R
        )
[3] => Array
        (
            [OSVERSION] => SunOS 5.10 
        )
Comment dans mon cas afficher toutes les valeurs ayant la clé "SERVERTYPE" et ensuite toutes les valeurs ayant la clé "OSVERSION"?

Voici mon code qui ne marche pas:
Code :
1
2
3
4
5
6
 
for($i=0; $i<sizeof($tabcible); $i++) {
 foreach($tabcible[$i]["SERVERTYPE"] as $cle => $val) {
 echo "<tr><td>$val</td></tr>";
 }
}
Merci d'avance à tous!
Tonii est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h17.


 
 
 
 
Partenaires

Hébergement Web