begin process at 2012 05 31 18:09:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Tableaux croisés php mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tableaux croisés php mysql

jeudi 8 septembre 2005 à 11:29:14 | Tableaux croisés php mysql

fredo35m

Bonjour,
je ne m'y connais pas vraiment en tableau et je souhaiterais savoir comment effectué un tableau croisé en php, pour l'instant j'arrive à afficher mes colonnes et mes lignes mais j'aimerais croiser ma varaible1 avec ma variable 2 pour obtenir les effectifs 3

exemple :
                    Param2
                      mod1                        mod2  
param1
   modalité 1   somme(param3xx)   somme(param3xx) 
   modalité 2   somme(param3xx)   somme(param3xx) 

(avec en plus éventuellement un total en bout chaque ligne et colonne)

pour l'instant j'arrive à afficher :

param 1     param2   param3
modalité 1  mod1     somme(param3xx) 
modalité 1  mod2     somme(param3xx) 
....

voici mon script actuel:

<html>
<FORM method="post" action="page5.php">
<select name="param1" onChange="this.form.submit();">
<option value="insee" <?php echo $selected=(isset ($_POST['param1']) && ($_POST['param1']=='insee')?'selected="selected"':'') ?> >insee
          </option>
<option value="LIBCOM" <?php echo $selected=(isset ($_POST['param1']) && ($_POST['param1']=='LIBCOM')?'selected="selected"':'') ?> >LIBCOM
          </option>
</select>
   
<select name="param2" onChange="this.form.submit();">
<option value="epci" <?php echo $selected=(isset ($_POST['param2']) && ($_POST['param2']=='epci')?'selected="selected"':'') ?> >epci
          </option>
<option value="naf60" <?php echo $selected=(isset ($_POST['param2']) && ($_POST['param2']=='naf60')?'selected="selected"':'') ?> >naf60
          </option>
</select>
<select name="param3" onChange="this.form.submit();">
<option value="EFET" <?php echo $selected=(isset ($_POST['param3']) && ($_POST['param3']=='EFET')?'selected="selected"':'') ?> >EFET
          </option>
<option value="TEFET" <?php echo $selected=(isset ($_POST['param3']) && ($_POST['param3']=='TEFET')?'selected="selected"':'') ?> >TEFET
          </option>
</select>
</form>
<?php
$hostname_local = "localhost";
$database_local = "sirene";
$username_local = "root";
$password_local = "root";
$local = mysql_pconnect($hostname_local, $username_local, $password_local) or die(mysql_error());
?>
<?php

mysql_select_db($database_local, $local);
$query_Recordset1 = "SELECT * FROM sirene_petit GROUP BY $param1, $param2";
$Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
?>

<title>ESSAI</title>
 
  <table border="1" width="700">
  <col width='300'> <col width='300'> <col width='200'>
    <tr>
      <td><?php echo $param1; ?></td>
      <td><?php echo $param2; ?></td>
      <td><?php echo $param3; ?></td>
    </tr>
 <tr>
  </table>
  <table border="1" width="700" BGCOLOR= '#FFFFFF'>
  <col width='300'> <col width='300'> <col width='200'>
 <?php
 while ($data = mysql_fetch_array($Recordset1))
 {
 ?>
      <td><?php echo $data[$param1]; ?></td>
      <td><?php echo $data[$param2]; ?></td>
      <td><?php echo $data[$param3]; ?></td>
    </tr>
 <?php } ?>
  </table>   
</HTML>

jeudi 8 septembre 2005 à 11:59:02 | Re : Tableaux croisés php mysql

malalam

Administrateur CodeS-SourceS
Hello,

si j'ai bien compris...il te faut un tableau multidimmensionnel.

Un petit exemple, pour voir si c'est ce que tu veux.
$coord = array (
'x' => array (0,25,10,48),
'y' => array (10,9,6,152)
);

pour obtenir les coordonnées du point [1][3] :
echo $coord['x'][1]; // affiche 25
echo $coord['y'][3]; // affiche 152

Metyons que les points réels ont le même indice, donc on a 4 points, de 0 à 3. Popur obtenir les coordonnées du point 2 :
$point = 2;
echo $coord['x'][$point];
echo $coord['y'][$point];

on peut évidemment faire des recherches, des comparaisons etc...avec in_array, array_search, array_keys etc...



jeudi 8 septembre 2005 à 12:20:37 | Re : Tableaux croisés php mysql

fredo35m

oui je pense que c'est ça !!!

En fait dans ma base mysql j'ai plusieurs variables que je souhaite croisé pour obtenir une valeur.

Exemple de variables : ville  entreprise effectif

Et bien je souhaite afficher un tableau résumant les effectifs des villes pour chaque entreprise

                            Entreprise 
                     Danone | Nestlé    Total
Ville

Paris               15            25      40

Rennes            12            10      22

Total               27          35        62

Voici le genre de tableau que je souhaiterais produire.
Pour l'instant les tableau que je produit sont :

Ville Entreprise Effectif
Paris Danone 15
Paris Nestlé 25
Rennes Danone 12
Rennes nestlé 10

Je sais pas si le tableau rend quelque chose mais bon ...
En fait mon but est de croisé 2 variable (ou plus) mais bon on va déjà ce limité à deux pour obtenir une valeur d'une troisième.

Depuis toute à l'heure j'arrive bien à afficher ça si je reprends mon exemple (mais par contre il ne m'affiche pas (Paris, Rennes et les chiffres)!!
merci pour ton coup de main
                           Entreprise 
                     Danone | Nestlé   
Ville

jeudi 8 septembre 2005 à 12:54:31 | Re : Tableaux croisés php mysql

malalam

Administrateur CodeS-SourceS
Il y a plusieurs manières de voir les choses, selon ce que tu veux en faire après.

On peut voir ça :

<?php
$tab['Paris']['Danone'] = 15;
$tab['Paris']['Nestle'] = 25;
$tab['Rennes']['Danone'] = 12;
$tab['Rennes']['Nestle'] = 10;

echo '<pre>',print_r ($tab),'</pre>';
?>

C'est facile à remplir à partir de ta base, au moins.
Mais pas super pratique...à réfléchir.



jeudi 8 septembre 2005 à 13:57:15 | Re : Tableaux croisés php mysql

fredo35m

En fait ce que je veux faire, c'est de permettre à l'utilisateur d'interroger la base de données, selon ce qu'il souhaite voir s'afficher dans le tableau (dans mon exemple il sélectionne ville, entreprise, effectif).
et donc je souhaite préparer un tableau permettant d'inclure les données de ma base de données. Ensuite si l'utilisateur souhaite un autre variable il a juste à sélectionner dans un menu déroulant la variable à insérer.

Mon principal problème est de savoir comment organisé (structuré) mon tableau pour qu'il affiche les résultats escomptés.

Mais je sais pas si je suis vraiment clair dans ma demande en fait ...!!
il s'agit principalement d'une présentation de résultat sous une forme de tableau croisé.

meric en tout cas

jeudi 8 septembre 2005 à 14:35:57 | Re : Tableaux croisés php mysql

fredo35m

En plus je viens de m'apercevoir que même mon premier formulaire avec les données en colonne n'est pas bon !! j'y comprends plus rien !!! j'suis une buse !!!

il ne m'affiche plus rien maintenant !!! alors que je veux juste qu'il fasse la somme en fonction de mes 2 premiers paramètres !!!

Je remets mon code modifié en grand désespoir là !!! j'y comprends plus rien !! mon but est d'afficher la somme du paramètre 3 en fonction des daparamètre 1 et 2!!!

Merci de votre aide !!!

<html>
<FORM method="post" action="page5.php">
<select name="param1" onChange="this.form.submit();">
<option value="insee" <?php echo $selected=(isset ($_POST['param1']) && ($_POST['param1']=='insee')?'selected="selected"':'') ?> >insee
          </option>
<option value="LIBCOM" <?php echo $selected=(isset ($_POST['param1']) && ($_POST['param1']=='LIBCOM')?'selected="selected"':'') ?> >LIBCOM
          </option>
</select>
   
<select name="param2" onChange="this.form.submit();">
<option value="epci" <?php echo $selected=(isset ($_POST['param2']) && ($_POST['param2']=='epci')?'selected="selected"':'') ?> >epci
          </option>
<option value="naf60" <?php echo $selected=(isset ($_POST['param2']) && ($_POST['param2']=='naf60')?'selected="selected"':'') ?> >naf60
          </option>
</select>
<select name="param3" onChange="this.form.submit();">
<option value="EFET" <?php echo $selected=(isset ($_POST['param3']) && ($_POST['param3']=='EFET')?'selected="selected"':'') ?> >EFET
          </option>
<option value="TEFET" <?php echo $selected=(isset ($_POST['param3']) && ($_POST['param3']=='TEFET')?'selected="selected"':'') ?> >TEFET
          </option>
</select>
</form>
<?php
$hostname_local = "localhost";
$database_local = "sirene";
$username_local = "root";
$password_local = "root";
$local = mysql_pconnect($hostname_local, $username_local, $password_local) or die(mysql_error());
?>
<?php

mysql_select_db($database_local, $local);
$query_Recordset1 = "SELECT SUM($param3) FROM sirene_petit GROUP BY $param1, $param2";
$Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());

$query_Recordset2 = "SELECT * FROM sirene_petit GROUP BY $param1, $param2";
$Recordset2 = mysql_query($query_Recordset2, $local) or die(mysql_error());
?>

<title>ESSAI</title>
 
  <table border="1" width="700">
  <col width='300'> <col width='300'> <col width='200'>
    <tr>
      <td><?php echo $param1; ?></td>
      <td><?php echo $param2; ?></td>
      <td><?php echo $param3; ?></td>
    </tr>
 <tr>
  </table>
  <table border="1" width="700" BGCOLOR= '#FFFFFF'>
  <col width='300'> <col width='300'> <col width='200'>
 <?php
 while ($datab = mysql_fetch_array($Recordset2))
 {
 
 ?>
      <td><?php echo $datab[$param1]; ?></td>
      <td><?php echo $datab[$param2]; ?></td>
      <td><?php echo $Recordset1[$param3]; ?></td>
    </tr>
 <?php } ?>
  </table>   
</HTML>

jeudi 8 septembre 2005 à 14:46:47 | Re : Tableaux croisés php mysql

malalam

Administrateur CodeS-SourceS
Ahhh, c'est cosmétique ?? Donne plutôt la structure de ta table (tes tables) concernées).


jeudi 8 septembre 2005 à 14:51:05 | Re : Tableaux croisés php mysql

fredo35m

Voici ma structure de ma table :

CREATE TABLE `sirene_petit` (
  `id_unique` bigint(20) NOT NULL auto_increment,
  `dep` varchar(5) default NULL,
  `apet700` varchar(10) default NULL,
  `datezone` varchar(10) default NULL,
  `insee` varchar(10) default NULL,
  `LIBCOM` varchar(30) default NULL,
  `naf60` varchar(16) default NULL,
  `naf240` varchar(16) default NULL,
  `nes16` varchar(10) default NULL,
  `nes36` varchar(10) default NULL,
  `naf700` varchar(16) default NULL,
  `nafg16` varchar(10) default NULL,
  `nafg36` varchar(10) default NULL,
  `SIRET` varchar(30) default NULL,
  `DCRET` double default NULL,
  `SIEGE` double default NULL,
  `ORIGINE` double default NULL,
  `TEFET` double default NULL,
  `CODEVOIE` varchar(11) default NULL,
  `MODET` double default NULL,
  `MARCHET` double default NULL,
  `SAISONAT` double default NULL,
  `NATURE` double default NULL,
  `NOMET` varchar(40) default NULL,
  `CADR` varchar(26) default NULL,
  `NUMVOIE` double default NULL,
  `INDREP` char(1) default NULL,
  `TYPEVOIE` char(3) default NULL,
  `LIBVOIE` varchar(26) default NULL,
  `DISTSP` varchar(26) default NULL,
  `CODPOS` double default NULL,
  `APEN700` varchar(10) default NULL,
  `ZE94` double default NULL,
  `NOMEN` varchar(40) default NULL,
  `MARCHEN` double default NULL,
  `SINGT` double default NULL,
  `CJ` double default NULL,
  `EFET` double default NULL,
  `DATE` varchar(15) default NULL,
  `ape` varchar(10) default NULL,
  `ics` double default NULL,
  `epci` varchar(30) default NULL,
  `ze` varchar(30) default NULL,
  `pays` varchar(30) default NULL,
  `au` varchar(30) default NULL,
  `za` varchar(30) default NULL,
  `geoZA` varchar(30) NOT NULL default '',
  `dateZA` date default '0000-00-00',
  `typeid_ZA` varchar(30) NOT NULL default '',
  `NRCI_DEBUT` varchar(40) NOT NULL default '',
  `RCI` varchar(30) NOT NULL default '',
  UNIQUE KEY `id_unique` (`id_unique`),
  KEY `DATE` (`DATE`,`insee`),
  KEY `insee` (`insee`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=43 ;
jeudi 8 septembre 2005 à 15:04:24 | Re : Tableaux croisés php mysql

malalam

Administrateur CodeS-SourceS
AAAAAAAAAAAAAAAAARRRRRRRRRRGGGGGGGGGHHHHHHHHHH !!!

T'as pas pu faire plus gros, comme table...??

Ok laisse moi un peu de temps j'ai un truc à finir.

jeudi 8 septembre 2005 à 15:06:03 | Re : Tableaux croisés php mysql

fredo35m

pas de problème !!!!!
désolé ......

1 2 3 4 5

Cette discussion est classée dans : local, mysql, somme, recordset1, param3xx


Répondre à ce message

Sujets en rapport avec ce message

php problème d'affichage données Mysql [ par fredo35m ] Bonjour,j'ai un problème avec mon affichage des données de ma table mysql. Il m'affiche bien le nom de la colonne mais en revanche il ne m'affiche pas 2 listes déroulantes en relation [ par ManuAntibes ] Salut j'essai de mettre en relation 2 listes déroulantes. Ma 1ère liste affiche les differents services.Ma 2ème liste affiche les personnes qui trava Formulaire - Probleme de compteur [ par spawnrad ] Bonjour,J'ai un probleme au niveau du compteur, il s'arrete de compter a partir de 85.voici la page web de mon formulaire :http://l4pfr.free.fr/view.p configuration phpmyadmin en local [ par arnold002 ] Bonjour à tous,J'ai un site web stocké chez un hébergeur, qui utilise phpmyadmin 2.7.0-pl1 avec mysql 4.0.13, global_register=onJ'ai cru comprendre qu Automatiser la mise a jour d'une base de donnée mysql sur le net à partir d'une base mysql en local [ par ralinis ] Salut à tous.je veux attendre un objectif: automatiser la mise à jour d'une base mysql qui est sur un serveur web à partir d'une base mysql installé e gestion de stock (local et internet) [ par dek_49 ] bonjour,je vous solicite pour trouver la meilleur solution pour developpez appli gtestion de stockactuellement tout ce passe en excel/vba ( gestion st Easy Php et Mysql en resseau local [ par xav42 ] Bonjour!!!Voila mon petit probleme: Je suis debutant et j'ai fait un petit prog qui utilise une base que j'ai mis dans Mysql de esay php. En local, to mysql requette comment faire??? [ par jordangj ] bonjour je vous explique mon pb voici le code qui me permet de crée un tableau: $result=mysql_query("select count(nb_visite) as somme,date from visite Quel variable prendre ??? [ par ManuAntibes ] Salut Pouvez vous me dire si mon code est bon.Aprés dans mon body il y a un tableau qui affiche toute les personnes qui on leur anniversaire aujourd'h parse erreur [ par hanlin ] je ne sais quoi faire pour regler ce probleme de "parse error" dans ce code...quelqu'un pourrait-il m'aider ?mysql_select_db($database_contact, $conta


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales