Affichage de n colone sans javascript

Signaler
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Voila, j'expose mon problème.
je veux afficher les infos d'une personne suivant des critères, ces infos pouvant etre multiplié suivant le nombre d'attribution qu'elle a ; je veux afficher toutes les infos de la personne qui sont les memes suivant sa structure.
j'ai trouvé 1manière de le faire mais ça me parait un peu compliqué et pas forcément logique mais je ne veux pas utiliser de javascript !
voila mon code qui fonctionne !!!!!

<?php
........
$query2=......
$result2_mysql=mysql_query($query2,$connexion);
$result3_mysql=mysql_query($query2,$connexion);
$result4_mysql=mysql_query($query2,$connexion);
$result5_mysql=mysql_query($query2,$connexion);
$result6_mysql=mysql_query($query2,$connexion);
$result7_mysql=mysql_query($query2,$connexion);
$result8_mysql=mysql_query($query2,$connexion);
$result9_mysql=mysql_query($query2,$connexion);


?>
<table width="100%" border="1" bordercolor="#FFFFFF">
<tr>
<th>
Fonction
</th>
<?php
while ($ligne=mysql_fetch_array($result2_mysql))
{
$fonction=$ligne['nomfonction'];
echo "<td>
$fonction
</td>";
}
?>
</tr>
<tr>
<th>
Structure
</th>
<?php
while ($ligne=mysql_fetch_array($result3_mysql))
{
$structure=$ligne['siglestructure'];
echo "<td>
$structure
</td>";
}
?>
</tr>

18 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

quelles sont les structures de tes tables, car là je pense qu'il y a un énorme problème d'optimisation...

et qu'est-ce que tu souhaites faire au juste ?

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
$result2_mysql=mysql_query($query2,$connexion);
$result3_mysql=mysql_query($query2,$connexion);
$result4_mysql=mysql_query($query2,$connexion);
$result5_mysql=mysql_query($query2,$connexion);
$result6_mysql=mysql_query($query2,$connexion);
$result7_mysql=mysql_query($query2,$connexion);
$result8_mysql=mysql_query($query2,$connexion);
$result9_mysql=mysql_query($query2,$connexion);

En arriver la c'est grave... parce que faire 4000 fois la même query, ca revient un peu à faire n'importe quoi !!! :)
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

jme doute doute bien que le code est pas forcément correct mais c'est le seul qui fonctionne !
en fait je veux afficher la fonction et la structure d'une personne ; mais il est possible que la personne est plusieurs fonctions dans différentes structures.
donc dans une 1ère colonne j'ai le descriptif (fonction / structure) et ensuite suivant le nombre de fonctions que la personne possède il y aura n nombre de colonne.

mes tables sont : (rapides et pas complets)
Personne : NumPersonne ........
Travailler : NumPersonne, NumStructure, NumFonction ........
Structure : NumStructure, SigleStructure.........
Fonction : NumFonction, NomFonction ..........
voila, j'espère que ça sera plus clair
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
"mes tables sont : (rapides et pas complets)"

Ma réponse va donc être rapide et incomplète : donne-nous la strcture complète de tes tables via PHPMyadmin.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

ok !
dictionnaire de données :

travailler
<!-- TABLE INFORMATIONS -->
Champ |
Type |<!--Attributs |-->
Null |
Défaut |<!--Extra |-->
----

numpersonne,
int(11), <!--, -->
Non,
0, <!--, -->
----

numstructure,
int(11), <!--, -->
Non,
0, <!--, -->
----

numservice,
int(11), <!--, -->
Non,
0, <!--, -->
----

numsous_service,
int(11), <!--, -->
Non,
0, <!--, -->
----

numfonction,
int(11), <!--, -->
Non,
0, <!--, -->
----

telpro,
varchar(10), <!--, -->
Non,
, <!--, -->
----

portablepro,
varchar(10), <!--, -->
Non,
, <!--, -->
----

faxpro,
varchar(10), <!--, -->
Non,
, <!--, -->
----

courrielpro,
varchar(50), <!--, -->
Non

structure
<!-- TABLE INFORMATIONS -->
Champ |
Type |<!--Attributs |-->
Null |
Défaut |<!--Extra |-->
----

numstructure,
int(11), <!--, -->
Non,
, <!--auto_increment, -->
----

numadresse,
int(11), <!--, -->
Non,
0, <!--, -->
----

siglestructure,
varchar(8), <!--, -->
Non,
, <!--, -->
----

nomstructure,
text, <!--, -->
Non,
, <!--, -->
----

telstructure,
varchar(10), <!--, -->
Non,
, <!--, -->
----

faxstructure,
varchar(10), <!--, -->
Non,
, <!--, -->
----

courrielstructure,
varchar(50), <!--, -->
Non

personne
<!-- TABLE INFORMATIONS -->
Champ |
Type |<!--Attributs |-->
Null |
Défaut |<!--Extra |-->
----

numpersonne,
int(11), <!--, -->
Non,
, <!--auto_increment, -->
----

numtitre,
int(11), <!--, -->
Non,
0, <!--, -->
----

numadresse,
int(11), <!--, -->
Non,
0, <!--, -->
----

datecreation,
date, <!--, -->
Non,
0000-00-00, <!--, -->
----

civilite,
varchar(5), <!--, -->
Non,
, <!--, -->
----

nompersonne,
varchar(50), <!--, -->
Non,
, <!--, -->
----

prenompersonne,
varchar(50), <!--, -->
Non,
, <!--, -->
----

telperso,
varchar(10), <!--, -->
Non,
, <!--, -->
----

portableperso,
varchar(10), <!--, -->
Non,
, <!--, -->
----

faxperso,
varchar(10), <!--, -->
Non,
, <!--, -->
----

courrielperso,
varchar(50), <!--, -->
Non

fonction
<!-- TABLE INFORMATIONS -->
Champ |
Type |<!--Attributs |-->
Null |
Défaut |<!--Extra |-->
----

numfonction,
int(11), <!--, -->
Non,
, <!--auto_increment, -->
----

nomfonction,
varchar(50), <!--, -->
Non
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Ok, maintenant que souhaites-tu faire pour avoir besoin d'autant de requêtes ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

alors je souhaite afficher les informations professionnelles (fonction, structure) à une personne précise ; cette personne pouvant avoir plusieurs fonctions dans différentes structures, je voudrais afficher les informations par colonne ; une colonne = 1fonction dans 1structure !


Exemple :



<COLGROUP>
<COL width=105>
<COL width=113>
<COL width=103>

----

Fonction,
Président,
SO,
----

Structure,
Directeur,
CESS

et en fait je devrai ptet basculer ça en ligne ça serai ptet plus simple ???
ou si tu as 1idée ??
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Si tu souhaites afficher les personnes (et tous leurs détails) un truc du genre devrait aller :

SELECT p.numpersonne,p.numtitre...[...],t.numstructure,t.numservice[...],s.numstructure,s.numadresse,[...] FROM personne p LEFT JOIN travailler t ON p.numpersonne=t.numpersonne LEFT JOIN structure s ON s.numstructure=t.numstructure LEFT JOIN fonction f ON t.numfonction=f.numfonction ORDER BY ...

ça devrait fonctionner, à toi d'ajouter les champs que tu souhaites voir sélectionnés dans la requête.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

ma requete fonctionne bien : j'utilise un inner join et non left join !
$query2="SELECT * FROM travailler INNER JOIN fonction ON fonction.numfonction = travailler.numfonction INNER JOIN structure ON structure.numstructure = travailler.numstructure INNER JOIN service ON service.numservice = travailler.numservice INNER JOIN sous_service ON sous_service.numsous_service = travailler.numsous_service WHERE numpersonne='$num';";

ç'est pour l'afficher dans le tableau ensuite si je ne remet $resultn ça ne fonctionne pas !
seulement la 1ère colonne s'affiche
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
N'utilise pas le SELECT * mais seulement le nom de tes champs, même si tu les utilises tous. Ensuite heu "ça ne fonctionne pas" c'est à dire ? tu utilises quoi pour récupérer les résultats de la requête ? ça donne quoi dans phpmyadmin ? y'a les enregistrements correspondants qui s'affichent quand tu fais la requête manuellement avec une valeur pour numpersonne ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

Exemple dans Phpmyadmin :
requête SQL: SELECT nomfonction, siglestructure FROM travailler INNER JOIN fonction ON fonction.numfonction travailler.numfonction INNER JOIN structure ON structure.numstructure travailler.numstructure INNER JOIN service ON service.numservice = travailler.numservice INNER JOIN sous_service ON sous_service.numsous_service = travailler.numsous_service WHERE numpersonne= 1 LIMIT 0, 30;
Enregistrements: 2

<!-- Results table -->
<!-- Results table headers -->

----

nomfonction |
siglestructure |<!-- Results table body -->
----

Infirmière,
APO,
----

Comptable,
DDASS

ensuite le script Php :
<?php
................
$result2_mysql =mysql_query($query2,$connexion);

?>
Fonction |
<?php
while ($ligne= mysql_fetch_array($result2_mysql))
{
$fonction=$ligne['nomfonction'];
echo \"$fonction, \";
}
?>

----

Structure |
<?php
while ($ligne =mysql_fetch_array($result2_mysql))
{
$structure=$ligne['siglestructure'];
echo \"$structure, \";
}
}
?>

à l'affichage ça rempli seulement les champs fonctions, les champ structures sont vides !
ç'est en modifiant une nouvelle query que ça fonctionne (pas forcément correct !!)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
<?php
while ($ligne=mysql_fetch_array($result2_mysql))
{
$fonction=$ligne['nomfonction'];
echo "<td>
$fonction
</td>";
}
?>
</tr>
<tr>
<th>
Structure
</th>
<?php
while ($ligne=mysql_fetch_array($result2_mysql))
{
$structure=$ligne['siglestructure'];
echo "<td>
$structure
</td>";
}
}
?>

ah non faut pas faire ça :

<?php
while ($ligne=mysql_fetch_array($result2_mysql))
{
$fonction=$ligne['nomfonction'];
echo '<td>',$ligne['nomfonction'],'</td><td>',$ligne['siglestructure'],'</td>';
}
?>

hop
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

ok mais je voudrais afficher dans la page fonction et structure pour légender et savoir ce que c'est ! ça pose problème ???
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Je comprends pas ce que tu veux faire

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

que l'affichage donne ceci :

Fonction,
Président,
SO,
----

Structure,
Directeur,
CESS

je suis bien d'accord avec toi pour l'affichage de la fonction et structure mais une colonne avec ce que ça représente ça serai bien ! ç'est justement cela mon problème car pour l'insérer à l'extérieur du while je vois pas trop !!! tu me suis ??
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Heu tu veux afficher en gros
Fonction Structure

, Président, SO, ----
, Directeur, CESS

si c'est ça c'est du html et ça n'a rien à voir avec PHP, si c'est pas ça je ne comprends toujours pas ton problème.
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
106
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 octobre 2007

non je voudrais que ça s'affiche comme ceci :


Fonction,
Président,
SO,
----

Structure,
Directeur,
CESS

1ère colonne avec l'intitulé
é ensuite 1 ou plusieurs colonnes avec les infos !
mais justement le code :
<th>
Fonction
</th>
<?php
while ($ligne=mysql_fetch_array($result2_mysql))
{
$fonction=$ligne['nomfonction'];
echo "<td>
$fonction
</td>";
}
?>
</tr>
<tr>
<th>
Structure
</th>
<?php
while ($ligne=mysql_fetch_array($result2_mysql))
{
$structure=$ligne['siglestructure'];
echo "<td>
$structure
</td>";
}
ça ne marche pas car je ferme le while donc je ne peut pas rouvrir la meme connexion !
enfin bon jcroi que jvai laisser tomber et afficher cela en ligne ç nettement plus simple !
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
C'est un problème de HTML ensuite, mais l'affichage avec une boucle est possible.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>