Rechercher : dans
Par :

Tableaux multi dimension pour le web

Dernière réponse le 6 mai 2004 à 16:31:10 djoulch, le 18 avr 2003 à 18:10:40 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Tableaux multi dimension pour le web » dans :
Manipulations élémentaires des tableaux sous MatLab VoirSommaire I. Stockage des tableaux II. L'indexation linéaire II.1. Accéder à un élément d'un tableau en utilisant l'indexation linéaire II.2. Passer d'une indexation à l'autre II.2.1. La fonction ind2sub II.2.2. La fonction sub2ind III. La...
VBScript - Les fonctions de manipulation de tableaux VoirLes fonctions de manipulation de tableaux Fonction Description Array(arglist) Crée un Variant contenant un tableau. L'argument arglist est la liste des valeurs, séparées par des...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...

1

ipl, le 18 avr 2003 à 20:07:02

Bonsoir djoulch, bonsoir à tous,

2 dimensions... oui c'est bon pour JavaScript !

@12C4
Ipl

Répondre à ipl

2

djoulch, le 19 avr 2003 à 12:50:04

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 ?

Répondre à djoulch

3

Taboujr, le 19 avr 2003 à 13:18:30

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/

Répondre à Taboujr

4

djoulch, le 19 avr 2003 à 14:13:54

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. ;)

Répondre à djoulch

5

Archaon Iron, le 31 mai 2003 à 07:57:45

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 

Répondre à Archaon Iron

6

PhP, le 31 mai 2003 à 13:06:12

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   ]]

Répondre à PhP

7

mroux, le 6 mai 2004 à 13:14:26

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

Répondre à mroux

8

HackTrack, le 6 mai 2004 à 15:30:47
  • +1

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>



;-)

Répondre à HackTrack

9

 mroux, le 6 mai 2004 à 16:31:10

Merci pour l'aide, mais je ne peux pas utiilser de javascript, je fais tout en php,
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

Répondre à mroux