Page 1 sur 1

Boucle

Posté : 03 déc. 2011, 16:06
par Jerz
Bonjour à tous et à merci d'avance à tous ceux qui liront ce post.

Voila mon problème.
Suite à une requête j'obtiens le tableau suivant :
id_adresse	                               nom	                         id_categorie	
1	                                       Hôpital Laval	                   2	                
2	                                       Marie de Tours                     6	                
3	                                       Mairie de Marseille	          6	
4	                                       Mairie Angers	                  6	
5	                                       Hôpital de Bordeaux                2	
Donc juste là, tout va bien, ..., mais là ou cela se complique un peu c'est je voudrais définir une nouvelle variable (n'appartenant pas à ma table), pour obtenir ceci :
id_adresse	                               nom	                         id_categorie	type
1	                                       Hôpital Laval	                     2	          1
2	                                       Marie de Tours                       6	         2
3	                                       Mairie de Marseille	            6	         3
4	                                       Mairie Angers	                    6	         4
5	                                       Hôpital de Bordeaux                  2            2
6	                                       Préfecture Niort                     7            1
7	                                       Hôpital de Caen                      2            3
8	                                       Préfecture Toulouse                  7            2
...
Je voudrais donc qu'a changement de id_categorie, on incrémente de 1 chaque enregistrement de cet id_categorie.
Tout ceci, afin de pouvoir active ou non des marqueur d'une google maps via des cases à cocher.

D'avance merci beaucoup pour vos réponses et/ou vos encouragements.

Jérôme

Re: Boucle

Posté : 03 déc. 2011, 16:14
par moogli
salut,


c'est vraiment pas clair ton histoire la ;)

est ce que tu peux être plus clair ?

tu veux compter le nombre d’élément par catégorie ? si oui select count(*) from table group by idcategorie;
tu aura un ligne par catégorie avec le nb d’élément par catégorie !


@+

Re: Boucle

Posté : 03 déc. 2011, 16:19
par sirakawa
Si tu donnais un exemple du résultat attendu, ce serait plus simple

Re: Boucle

Posté : 03 déc. 2011, 16:24
par Jerz
Merci de ta réponse, et désolé pour le manque de clarté

En faîte, je ne veux pas compter le nombre d’éléments par catégorie (ca je sais faire), je voudrais qu'à chaque changement d'id_categorie, qu'une variable i s'incrémente de 1 à chaque fois
exemple :
pour le 1er id_categorie = 2 , i =1
pour le 2nd id_categorie = 1, i=2
pour le 1er id_categorie = 6, i=1
pour le 2nd id_categorie = 6, i=2
pour le 3eme id_categorie = 6, i=3
...
En espérant avoir été pluc clair.

Le but de tout cela, est de permette d'afficher ou non ces marqueurs sur une google map, via des checkboxs.
Le javascript que j'ai récupéré ne fonctionne qu'à cette condition et n'étant pas expert dans ce langage, j'essaie de trouver une alternative en PHP.

Re: Boucle

Posté : 03 déc. 2011, 16:29
par dix2
salut,

ce serait pas plutôt ça :
id_adresse                                     nom                               id_categorie   type
1                                              Hôpital Laval                        2            1
2                                              Marie de Tours                       6            1
3                                              Mairie de Marseille                  6            2
4                                              Mairie Angers                        6            3
5                                              Hôpital de Bordeaux                  2            2
6                                              Préfecture Niort                     7            1
7                                              Hôpital de Caen                      2            3
8                                              Préfecture Toulouse                  7            2
...
dix2

Re: Boucle

Posté : 03 déc. 2011, 16:38
par Jezr
En effet.
Dsl pour cette erreur.

Re: Boucle

Posté : 03 déc. 2011, 17:26
par dix2
le script devrait ressembler à ça :
$data = array(
  array(
    'id_adresse' => 1,
    'nom' => 'Hôpital Laval',
    'id_categorie' => 2
  ),
  array(
    'id_adresse' => 2,
    'nom' => 'Marie de Tours',
    'id_categorie' => 6
  ),
  array(
    'id_adresse' => 3,
    'nom' => 'Mairie de Marseille',
    'id_categorie' => 6
  ),
  array(
    'id_adresse' => 4,
    'nom' => 'Mairie Angers',
    'id_categorie' => 6
  ),
  array(
    'id_adresse' => 5,
    'nom' => 'Hôpital de Bordeaux',
    'id_categorie' => 2
  ),
  array(
    'id_adresse' => 6,
    'nom' => 'Préfecture Niort',
    'id_categorie' => 7
  ),
  array(
    'id_adresse' => 7,
    'nom' => 'Hôpital de Caen',
    'id_categorie' => 2
  ),
  array(
    'id_adresse' => 8,
    'nom' => 'Préfecture Toulouse',
    'id_categorie' => 7
  )
);

foreach($data as $record){
  $id_adresse = $record['id_adresse'];
  $id_categorie = $record['id_categorie'];
  if(isset($tabTemp[$id_categorie])){
    $tabTemp[$id_categorie] = $tabTemp[$id_categorie] + 1;
  }
  else{
    $tabTemp[$id_categorie] = 1;
  }
  $tabRes[] = array($id_adresse, $tabTemp[$id_categorie]);
}

print_r($tabRes);
@+
dix2

Re: Boucle

Posté : 03 déc. 2011, 18:00
par pression brerp
Merci.
Je regarde cela de suite, mais à 1ere vue cela semble correspondre à ce que je recherche.
Je te tiens au courant.

Merci.
Jerome