Page 1 sur 1
tableau a deux dimensions
Posté : 17 nov. 2005, 10:06
par isatis28
Je voulais savoir si en php, on peut construire des tableaux, ou plutot des "variables" a deux dimensions? je voudrais faire queque chose dans ce genre:
$
con= mysql_connect ($serv,$log,$pass) or die ("erreur de connection");
mysql_select_db($base,$con) or die ("erreur de selection");
$req="select * from $table2;";
$res=mysql_query($req, $con);
$j=0;
$tab=array ();
while ($row=mysql_fetch_row($res)) {echo "<tr>";
for ($i=0;$i<count($row);$i++) {
$tab[$j][$i]==$row[$i] ;
echo "<td>$tab[$j][$i] <td>";
}
echo "</tr>";
$j++;}
$result=mysql_error($con);
print $result;
mysql_close ($con);
merci
Posté : 17 nov. 2005, 10:09
par pitt
Oui c'est possible
tu pourrais a chaque tour de boucle créer un tableau à une dimension correspondant à ce que tu as récuperer dans ta requete.
Et ensuite mettre ce tableau dans ton tableau à deux dimensions.
Posté : 17 nov. 2005, 10:37
par isatis28
C'est plus ou moins ce que j'ai fait dans mon script, situé dans le message precedent mais cela genere des erreurs " Undefined offset:" , est ce que vous sauriez a quoi cel est due?
Posté : 17 nov. 2005, 10:47
par pitt
peut etre que
while ($row=mysql_fetch_row($res)) {echo "<tr>";
for ($i=0;$i<(count($row)-1);$i++) {
$tab[$j][$i]==$row[$i] ;
echo "<td>$tab[$j][$i] <td>";
}
echo "</tr>";
$j++;}
Car les tableaux sont indicés à partir de 0 mais quand tu comptes le nombre de composantes du tableau il y en a une de plus
Posté : 17 nov. 2005, 10:54
par isatis28
Non ce n'est pas cela, j'ai toujours la meme erreur. est ec que la syntaxe $tab[$i][$j] est bonne?
Posté : 17 nov. 2005, 11:04
par pitt
essaie plutot
con= mysql_connect ($serv,$log,$pass) or die ("erreur de connection");
mysql_select_db($base,$con) or die ("erreur de selection");
$req="select * from $table2;";
$res=mysql_query($req, $con);
$j=0;
$tab=array ();
while ($row=mysql_fetch_row($res)) {echo "<tr>";
$compo=array();
for ($i=0;$i<(count($row)-1);$i++) {
$compo[$i]=$row[$i];
echo "<td>$row[$i] <td>";
}
$tab[$j]=$compo;
echo "</tr>";
$j++;}
$result=mysql_error($con);
print $result;
mysql_close ($con);
As tu besoin du tableau par la suite ou c'est juste pour l'affichage?
Posté : 17 nov. 2005, 11:24
par isatis28
J'ai besoin du tableau par la suite, je ne l'affiche que pour etre sur de mon code. J'ai testé ton code cependant je nai pas ciomprit comment, une fois sortie de ma boucle je pouvais recuperer mes valeurs?
Car je vais avoir besoin des donnée extraite de ma base par la suite c'est pour cela que je voualsi les mettres dans des varables pour pouvoir m'en reservir sans a nouveau faire un appel vers le serveur.
merci bcp pour ton aide!
Posté : 17 nov. 2005, 11:35
par pitt
De la même manière pour avoir accès à la première colonne de la ligne 1
$tab[0][0];
Troisième colonne ligne 4
$tab[3][2];
En fait a chaque tour de boucle tu construits un tableau regroupant les données de l'enregistrement correspondant et tu l'injectes en ième composante du tableau $tab.
Ca marche ou pas?
Posté : 17 nov. 2005, 11:43
par isatis28
Malheureusement non, j'ai tjour la meme erreur, Undefined offset

Posté : 17 nov. 2005, 11:47
par pitt
Donne moi la ligne et la ligne de code à laquelle elle correspond
Posté : 17 nov. 2005, 12:05
par isatis28
c'est bon j'ai réussi! je m'etait trompé avec une variable dans mon premier code!
while ($row2=mysql_fetch_row($res2)){
for($j=0;$j<$c=count($row2);$j++){
$tab[$i][$j]=$row2[$j];
echo $tab[$i][$j];
}
$i ++ ;
}
Merci beaucoup !