|
|
|
|
Posté par
djoulch, le vendredi 18 avril 2003 à 18:10:40Bonsoir 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 ? |
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/ |
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. ;) |
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 |
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>
;-)
|
| 24/05 06h49 | L'indexation linéaire et le reshape sous Matlab | MatLab |
| 02/05 17h48 | Des outils pour le télétravail | e-RH et management |
| 30/06 17h55 | Webconférence | e-RH et management |
| 07/09 15h05 | [Firefox][GreaseMonkey] Personnaliser les pages web | Mozilla Firefox |
| 06/03 23h22 | [Webmaster] Publier facilement une vidéo dans une page web | Webmaster |
| 30/04 11h08 | Tableau multidimensionnelle php | 1 |
| 23/02 23h17 | ACCESS: FUSION DANS WORD AVEC TABLES MULTIPLE | 4 |
| 05/02 01h37 | [C] realloc sur un tableau 2 dimensions | 4 |
| 16/10 13h02 | PHP: classement tableau multidimensionel | 11 |
![]() | Tables multimédia - En général les enfants ont tendance à ne pas vouloir étudier et les parents perdent parfois patience à leur apprendre. Peut... | Catégorie: Bureautique Licence: Freeware/gratuit |
![]() | Web Developer Toolbar - WebDeveloper est une extension firefox représentant une formidable boîte à outils pour examiner et manipuler les pages... | Catégorie: Extensions Firefox Licence: Freeware/gratuit |
![]() | K9 Web Protection - K9 Web Protection est un logiciel de contrôle parental permettant de contrôler et de limiter les accès à Internet de son... | Catégorie: Contrôle parental Licence: Freeware/gratuit |
![]() | WebBulle - WebBulle est un aggrégateur de flux RSS . Il collectera les dernières informations de vos sites préférés, et vous... | Catégorie: RSS Licence: Freeware/gratuit |
![]() | Zyxel Dimension ES-1528 WebSmart | Catégorie: Hub/Switch | |
![]() | Lenovo X60Tablet Intel Core | Catégorie: Tablet PC | |
![]() | LabTec Webcam Plus | Catégorie: Webcam | 10.11 € Cdiscount |
![]() | Samsung Q1b HSDPA VIA | Catégorie: Tablet PC | 1,145.50 € MicroChoix |