Faire un tableau 2 dimensions à partir d'une table SQL ?

Eléphanteau du PHP | 43 Messages

13 sept. 2005, 01:41

voila je galere j'ai regardé un peu toute les fonctions php qui touche à MySQL et j'arrive pas a trouver la solution à mon problème.

Je voudrais faire une variable tableau a deux dimensions a partir d'une table sql.

1. Mon premier probleme c'est que je vois pas comment recuperer le nom des champs sql pour les mettre sur la premier ligne du tableau.
2. Mon second quel fonction utiliser pour réaliser ceci, je pensais à mysql_fetch_assoc() ou mysql_fetch_array().

(ça fait tres charade hihi)

Voila ce que je voudrais obtenir:
$requete = 'SELECT * FROM Table';
....
$resultat = array[ligne][colonne] ou array [colonne][ligne];

//exemple:
$resultat [0][0] = id; //nom du premier champs
$resultat [0][1] = nom; //nomdu deuxieme champs
...
$resultat [1][0] = 1; //premiere ligne et premier champs de la table
$resultat [1][1] = toto; //premiere ligne et deuxieme champs de la table
...
$resultat [n][0] = n; //ligne n et premier champs de la table
$resultat [n][1] = toto; //ligne en et  deuxieme champs de la table 
Merci d'avance pour votre aide à tous ++
Modifié en dernier par sideb le 22 nov. 2005, 18:53, modifié 3 fois.

Eléphant du PHP | 164 Messages

13 sept. 2005, 02:47


$requete = 'SELECT * FROM inscription';
$reponse = mysql_query($requete); 
$nombrechamps = mysql_num_fields($reponse);


for ($j=0;$j<$nombrechamps;$j++)
{
$nomchamp[] = mysql_field_name($reponse,$j);
}

echo "<table border ='1'>";
echo "<tr>";
for ($i=0;$i<$nombrechamps;$i++)
{
echo ('<td>');

echo ('<center>'.$nomchamp[$i].'</center>');
echo ('</td>');
}
echo "</tr>";
while ($result = mysql_fetch_row($reponse))
{
echo ('<tr>');
for ($i=0;$i<$nombrechamps;$i++)
{

echo ('<td>');

echo ('<center>'.$result[$i].'</center>');
echo ('</td>');
}
echo ('</tr>');
}
echo "<table>";
voila : je t'ai fait un script qui permet d'afficher les résultats trouvés pour chaques champs existants dans la table c'est bien ça que tu voulais?

Eléphant du PHP | 164 Messages

13 sept. 2005, 02:48


$requete = 'SELECT * FROM inscription';
$reponse = mysql_query($requete); 
$nombrechamps = mysql_num_fields($reponse);


for ($j=0;$j<$nombrechamps;$j++)
{
$nomchamp[] = mysql_field_name($reponse,$j);
}

echo "<table border ='1'>";
echo "<tr>";
for ($i=0;$i<$nombrechamps;$i++)
{
echo ('<td>');

echo ('<center>'.$nomchamp[$i].'</center>');
echo ('</td>');
}
echo "</tr>";
while ($result = mysql_fetch_row($reponse))
{
echo ('<tr>');
for ($i=0;$i<$nombrechamps;$i++)
{

echo ('<td>');

echo ('<center>'.$result[$i].'</center>');
echo ('</td>');
}
echo ('</tr>');
}
echo "<table>";
voila : je t'ai fait un script qui permet d'afficher les résultats trouvés pour chaques champs existants dans la table c'est bien ça que tu voulais?

Eléphant du PHP | 164 Messages

13 sept. 2005, 02:51

Euh...

tu veux afficher un tableau a deux dimension ou tu veux créer une variable a deux dimensions?

moi j'avais compris la 1ere solution.....

Si ca te convien pas dit le moi on va revoir ça!

mais essaye deja ça!

Eléphanteau du PHP | 43 Messages

13 sept. 2005, 07:26

Euh...

tu veux afficher un tableau a deux dimension ou tu veux créer une variable a deux dimensions?

moi j'avais compris la 1ere solution.....

Si ca te convien pas dit le moi on va revoir ça!

mais essaye deja ça!
une variable à deux dimensions avec le nom des champs MySQL sur la premiere ligne.

exemple:
$resultat [0][0] = id; //nom du premier champs
$resultat [0][1] = nom; //nomdu deuxieme champs
...
$resultat [1][0] = 1; //premiere ligne et premier champs de la table
$resultat [1][1] = toto; //premiere ligne et deuxieme champs de la table
...
$resultat [n][0] = 1; //ligne n et premier champs de la table
$resultat [n][1] = toto; //ligne en et  deuxieme champs de la table
[/quote]
Modifié en dernier par sideb le 19 sept. 2005, 23:27, modifié 1 fois.

Eléphant du PHP | 164 Messages

13 sept. 2005, 13:49

je vois..

En meme temps si tu veux faire un tableau a deux dimension destiné à l'affichage ma solution est parfaite......

Tho
Eléphant du PHP | 58 Messages

13 sept. 2005, 14:15

<?php
// Connexion à la base
// ???

// Initialisation
$table = "inscription";

// Entete
$requete = "DESCRIBE $table";
$resultat = mysql_query($requete) or die(mysql_error());
while($ligne = mysql_fetch_array($resultat)) 
  $entete[] = $ligne['Field'];

$tableau[] = $entete; // première ligne du tableau

// Données
$requete = "SELECT * FROM $table";
$resultat = mysql_query($requete) or die(mysql_error());
while ($tableau[] = mysql_fetch_row($resultat)) 
  ;  // l'instruction est dans la condition

// Affichage
echo "<pre>".print_r($tableau,true)."</pre>";
?>
qu'en penses-tu ?

Eléphant du PHP | 164 Messages

13 sept. 2005, 18:04

j'en sais rien ta essayé? ca marche?

Tho
Eléphant du PHP | 58 Messages

14 sept. 2005, 11:01

Oui j'ai pas posté sans tester ;)
mais c'est sideb qui devrait répondre.

Eléphant du PHP | 164 Messages

14 sept. 2005, 23:56

ok!