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
A voir également:
- Tableaux multi dimension pour le web
- Web office - Guide
- Création site web - Guide
- Multi exp heartgold - Forum Jeux vidéo
- Dimension a5 - Guide
- K9 web protection - Télécharger - Contrôle parental
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/
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/
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 ?
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
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 ]]
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
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
je me suis débrouillée, mais je ne comprends pas bien comment fonctionnent les tableaux en 2D en php (j'ai fait pas mal de fortran et ça semble pas fonctionner pareil)
Merci pour le script