Tableaux multi dimension pour le web
djoulch
Messages postés
32
Statut
Membre
-
mroux Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
mroux Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Quelqu'un pourrait-il me dire s'il est possible en javascript et en php de créer des tableaux à 2 dimension comme avec le langage java?
Merci d'avance
Merci d'avance
8 réponses
-
Si cela peux t'aider voici un script que j'ai écrit qui te permet d'utiliser un objet de type DataTable (voir code) qui facilite l'utilisation de tables à deux dimensions:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>TableDemo</title> <style> table,tr{ background-color: #2222ff; border-width: 1px; border-style: solid; } td{ background-color: #aaaaff; padding: 2 4 2 4; } </style> <script language="javascript" type="text/javascript"> /* Author: Philippe Fery (HackTrack) philippefery@hotmail.com Creation: May 6th, 2004 Crée une table à deux dimensions en prenant comme paramètres: r : le nombre de rangs du tableau c : le nombre de colonnes du tableau Le tableau créé est 0-based. Pour adresser la 1ère cellule du 1er rang il faut donc utiliser les index (0,0) Ce script peut être inclus dans vos pages si vous en mentionner la source */ function DataTable(r, c){ this.rowCount=r; this.colCount=c; this.table=new Array(this.rowCount); this.init=initTable; this.toHTML=htmlTable; this.appendToDocument=append; this.getData=getData; this.setData=setData; this.getRow=getRow; this.getRowCount=getRowCount; this.getColCount=getColCount; this.init(); } /* Initialize the table */ function initTable(){ for(row=0 ; row<this.rowCount ; row++){ r = new Array(this.colCount); for(col=0 ; col<this.colCount ; col++){ r[col] ="z_"+row+"_"+col; } this.table[row] =r; } } /* Read data in the specified cell (0-based) */ function getData(row, col){ return this.table[row][col]; } /* Insert data in the specified cell (0-based) */ function setData(row, col, data){ this.getRow(row)[col]=data; } /* Returns a row */ function getRow(index){ return this.table[index]; } /* Returns the number of rows */ function getRowCount(){ return this.rowCount; } /* Returns the number of columns */ function getColCount(){ return this.colCount; } /* Generates a html table based on DataTable content */ function htmlTable(){ html = "<table>"; for(row=0 ; row<this.rowCount ; row++){ html +="<tr>"; r = this.getRow(row); for(col=0 ; col<this.colCount ; col++){ html +="<td>"; html += r[col]; html +="</td>"; } html +="</tr>"; } html +=""; html +=""; html +=""; html +=""; html +="</table>"; return html; } function append(){ tableDiv = document.createElement("span"); html = this.toHTML(); tableDiv.innerHTML = html; document.body.appendChild(tableDiv); } </script> </head> <body> <script language="javascript" type="text/javascript"> myTable = new DataTable(5,3); alert("Nombre de rangs: " + myTable.getRowCount()); alert("Nombre de colonnes: " +myTable.getColCount()); myTable.setData(0,0,"a"); myTable.setData(2,2,"b"); alert(myTable.getData(0,0)); myTable.appendToDocument(); </script> </body> </html>
;-) -
En ce qui concerne le php, il est aussi possible de créer des tableaux très complexes.
Pour les initialiser, le meilleur moyn est de remplir un tableau avec des tableaux comme ceci :
$array[]=array('a',26,true);
$array[]=array('b',25,false);
$array[]=array('c',24,false);
...
$array[]=array('z',1,false);
ensuite, en faisant un appel à la variable $array[$i][$j], tu peux balayer tout ton tableaux en faisant varier $i entre 0 et 25 et en affectant à $j la valeur 0 (pour obtenir le charactère), 1 (pour obtenir le chiffre) ou 2 (pour obtenir le booléen).
TaBou JuNioR
http://membres.lycos.fr/taboujr/ -
Bonsoir djoulch, bonsoir à tous,
2 dimensions... oui c'est bon pour JavaScript !
@12C4
Ipl -
Y'a-t-il un moyen d'initialiser un tableau deux dim de la même manière qu'un tableau 1 dim, comme dans le cas suivant :
tableau = [2,3,4,5];
Si oui, comment l'écrire dans le code ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Hello !
J'ai essayé comme dit Taboujr mais .. problème ! J'ai des données à prendre dans la bdd, sous forme de tableau.
Quand je fais par exemple $var=$tableau[0][0] au fait je ne reçoit que le premier caractère
$array[]=array('allo',26,true);
$array[]=array('bidon',25,false);
$array[]=array('coucou',24,false);
Là par exemple "a". Avec [1][0] j'aurai "2" (de "26"),... je n'y comprend rien !
$pop_sql="SELECT username, user_pop FROM phpbb4_users where user_id>0 ORDER BY user_pop DESC LIMIT 2";
$pop = $db->sql_query($pop_sql);
$pop = mysql_fetch_array($pop);
$username1 = $pop[0];
$user_pop1 = $pop[1];
Ca c'est ok si je veux avoir $username et $user_pop de premier de la liste(trié par user_pop), mais pour avoir $username2 et $user_pop2 : rien à faire !!
Quelqu'un pourrait-il m'expliquer quelle est mon erreur ? Merci
"Si on veut, on peut"
=> Hélas non, la chance (ou la malchance) a souvent son mot -
Bjr
Bah c'est normal car mysql_fetch_array() ne retourne qu'une ligne de la requête à la fois !
Pour avoir les autres lignes il faut faire une boucle ...
while ($pop = mysql_fetch_array($pop_sql)) {
echo $pop[0];
echo $pop[1];
}
Moralité le tableau $pop[] n'a qu'une dimension.
@+
PhP
[[ The Truth is Out There ]] -
Je travaille avec un tableau 2 D mais je ne sais pas comment compter le nombre d'éléments, le count me ramène le nombre de colonnes alors que je voudrais obtenir le nombre de lignes
pouvez-vous me donner un coup de main ?
voila le fetch par lequel je charge le tableau
$result = mysql_query($select);
if ($result)
{
$nb_row = 0;
$i=0;
while ($row = @mysql_fetch_array($result))
{
for ($i=0; $i<$nbchamp; $i++)
{
$eltlu[$nb_row][$i] = $row[$i];
$nb_row++;
}
}
......
Lorsque je fais $nbr=count($eltlu);
je récupère 6 qui correspond à une seule ligne lue en table mais aux 6 attributs lus
Merci -
Merci pour le php, si quelqu'un peut me fournir la même chose mais pour le javascript, je lui en serait extrêmement reconnaissant. ;)