Traitement de résultat en tableau

cs_Son_of_the_Sun Messages postés 49 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 13 août 2006 - 26 janv. 2006 à 10:20
cs_Son_of_the_Sun Messages postés 49 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 13 août 2006 - 26 janv. 2006 à 16:11
Bonjour,

j'ai une table A et une table B qui contient des champs liés à la table A
(ex: b1 => a1, b2 =>a1, b3=>a2, b4=>a3, b5=>a3, b6=>a3)
Je voudrais utiliser la fonction mysql_fetch_array() pour obtenir un tableau du genre (a1--b1,b2),(a2--b3),(a3--b4,b5,b6)
En bref, comment avoir un tableau de 2 colonnes et 3 lignes avec toutes ces données?
Merci pour votre aide :)

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 janv. 2006 à 10:48
Hello,

mettons que tu as ces tables :

A
a_id

B
a_id
b_num
$sQuery 'SELECT A.a_id, B.b_num FROM A, B WHERE A.a_id B.a_id';
$rRequete = mysql_query ($sQuery);
while ($aRes = mysql_fetch_assoc ($rRequete)) {
$aStock[$aRes['a_id']][] = $aRes['b_num'];
}
echo '', print_r ($aStock), '

';
0
cs_Son_of_the_Sun Messages postés 49 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 13 août 2006
26 janv. 2006 à 11:40
Que représente cette ligne? Je ne la comprend pas:
$aStock[$aRes['a_id']][] = $aRes['b_num'];
Le navigateur m'affiche ceci:

Array
(
[1] => Array
(
[0] => 1
[1] => 1
)

[2] => Array
(
[0] => 2
[1] => 2
)

[3] => Array
(
[0] => 3
)

[4] => Array
(
[0] => 4
)

)
1
0
cs_Son_of_the_Sun Messages postés 49 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 13 août 2006
26 janv. 2006 à 14:17
Désolé pour le doublon, je vais mieux illustrer ma situation:

Il existe une table Pack(idPack), une table Materiel(idMat,libMat) et une table contenir(idPack,idMat).
J'aimerais afficher le numéro de Pack avec le matériel qu'il contient(1,n) sous forme de tableau.
Ici par exemple: la 1ere colonne affiche (1),(2),(3) (donc 3 lignes pour la 1ere colonne) et la seconde affiche le LIBELLE (ca se complique) sous la forme (caméra, micro, casque),(trepied, casque, perche),(camera, trepied, perche), donc 3 lignes pour la seconde colonne.

Est-ce réalisable?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 janv. 2006 à 15:33
Je n'avais pas compris que tu parlais de HTML.

Fais un GROUP BY sur A, sur ta requête (sur A.a_id). Tu auras ce que tu veux facilement affichable dans un tableau html.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Son_of_the_Sun Messages postés 49 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 13 août 2006
26 janv. 2006 à 16:11
J'ai modifié la requête mais ca ne marche toujours pas... As-tu pris en compte le message que j'ai posté en dessous?
Ca me parait vachement difficile quand même... Rien que par la requête, il m'en faudra deux non?
Une qui prenne l'id du Pack, et l'autre qui prenne le libellé en fonction de l'id qui se trouve dans le fetch array...

Pourrais-tu apporter ton aide la dessus? Je te donne mon code précédent:


$reqPack=mysql_query("SELECT DISTINCT pack.idPack FROM materiel, pack, contenir WHERE pack.IDPACK = contenir.IDPACK AND materiel.IDMAT = contenir.IDMAT");
echo "<tr>";

echo"<td>";
echo "N° pack:";
echo"</td>";

echo"<td>";
echo "Contient: ";
echo"</td>";

echo"</tr>";
while ($row=mysql_fetch_array($reqPack)) {
echo"<tr>";
echo"<td>";
echo '
Pack ' .$row['idPack']. '

';
echo"</td>";

$reqMat=mysql_query("SELECT libmat FROM materiel, pack, contenir WHERE pack.IDPACK = " .$row['idPack']. "AND pack.IDPACK = contenir.IDPACK AND materiel.IDMAT = contenir.IDMAT");

while ($row=mysql_fetch_array($reqMat)) {
echo"<td>";
echo $row['libmat'];
echo"</td>";
}
echo"</tr>";
}
0
Rejoignez-nous