Remplir tableaux multidimension avec base mySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Remplir tableaux multidimension avec base mySQL

par Invité » 07 mai 2009, 10:52

Il commençait à 9 parce que dans mon code je rajoute une ville quand le numéro du département contenu dans ma table département) est le même que celui contenu dans ma table communes ,or comme je l'expliquais dans une table les unité commencé par 0 (01 ,02 ,03...) et dans l'autre le 0 n'y était pas (1 ,2 ,3 ....)

Je sais pas si je répond à ta question .

Incrémentation de mon i et de mon j semble correct ,je récupère bien toute mes ville
echo @$communes	= $Dblocal2->current['communes'] ;
mais quand je veux les insérer dans mon tableau il semble y avoir un problème :
$VillePHP[$j] = array();
$VillePHP[$j][$i] = array($Numero,$communes) ;

par zeus » 07 mai 2009, 10:38

mais pourquoi $j commence à 9 ?

par Invité » 07 mai 2009, 10:37

Alors en épluchant un peu plus mes boucles je suis arrivé à une erreur :

le numéro dans ma table département : 1,2,3...
le numéro dans ma table communes: 01,02,03...

ce champs est en varchar et oui malheureusement il n'y as pas que des numéro dans les département ,la corse : 2A et 2B :?

Je n'est pas corriger l'erreur mais je pense que ca viens de là ...

par zeus » 07 mai 2009, 10:22

En ne prennant que les quelques 1eres lignes de ton exemple et en les formattant, j'obtiens le résultat suivant :

Code : Tout sélectionner

array(88) { [9]=> array(1) { [432]=> array(2) { [0]=> string(2) "10" [1]=> string(15) "YEVRES-LE-PETIT" } } [10]=> array(1) { [437]=> array(2) { [0]=> string(2) "11" [1]=> string(8) "VINASSAN" } } [11]=> array(1) { [303]=> array(2) { [0]=> string(2) "12" [1]=> string(5) "CURAN" } } [12]=> array(1) { [118]=> array(2) { [0]=> string(2) "13" [1]=> string(19) "CARNOUX-EN-PROVENCE" } }
La 1ère chose que je remarque, c'est que jamais tu ne pourras faire
echo $VillePHP[0][0][1]
Par exemple, pour la 1ère ville stockée dans ton tableau, il faudrait faire
echo $VillePHP[9][432][1]
Je te conseille donc de faire des echo de $j et $i dans chaque boucle pour savoir si elles évoluent bien comme tu le penses.

Re: Remplir tableaux multidimension avec base mySQL

par Invité » 07 mai 2009, 10:11

Voici la reponse :
une centaine d'enregistrements alors qu'il devrai contenir beaucoup plus

Code : Tout sélectionner

rray(88) { [9]=> array(1) { [432]=> array(2) { [0]=> string(2) "10" [1]=> string(15) "YEVRES-LE-PETIT" } } [10]=> array(1) { [437]=> array(2) { [0]=> string(2) "11" [1]=> string(8) "VINASSAN" } } [11]=> array(1) { [303]=> array(2) { [0]=> string(2) "12" [1]=> string(5) "CURAN" } } [12]=> array(1) { [118]=> array(2) { [0]=> string(2) "13" [1]=> string(19) "CARNOUX-EN-PROVENCE" } } [13]=> array(1) { [705]=> array(2) { [0]=> string(2) "14" [1]=> string(13) "PONT-D'OUILLY" } } [14]=> array(1) { [259]=> array(2) { [0]=> string(2) "15" [1]=> string(5) "BESSE" } } [15]=> array(1) { [403]=> array(2) { [0]=> string(2) "16" [1]=> string(19) "YVRAC-ET-MALLEYRAND" } } [16]=> array(1) { [471]=> array(2) { [0]=> string(2) "17" [1]=> string(14) "BREE-LES-BAINS" } } [17]=> array(1) { [289]=> array(2) { [0]=> string(2) "18" [1]=> string(8) "VOUZERON" } } [18]=> array(1) { [285]=> array(2) { [0]=> string(2) "19" [1]=> string(8) "YSSANDON" } } [19]=> array(1) { [123]=> array(2) { [0]=> string(2) "2A" [1]=> string(4) "ZOZA" } } [20]=> array(1) { [235]=> array(2) { [0]=> string(2) "2B" [1]=> string(5) "CHISA" } } [21]=> array(1) { [706]=> array(2) { [0]=> string(2) "21" [1]=> string(23) "VOULAINES-LES-TEMPLIERS" } } [22]=> array(1) { [372]=> array(2) { [0]=> string(2) "22" [1]=> string(15) "YVIGNAC-LA-TOUR" } } [23]=> array(1) { [259]=> array(2) { [0]=> string(2) "23" [1]=> string(10) "VILLETELLE" } } [24]=> array(1) { [556]=> array(2) { [0]=> string(2) "24" [1]=> string(6) "VITRAC" } } [25]=> array(1) { [593]=> array(2) { [0]=> string(2) "25" [1]=> string(15) "VYT-LES-BELVOIR" } } [26]=> array(1) { [368]=> array(2) { [0]=> string(2) "26" [1]=> string(28) "SAINT-VINCENT-LA-COMMANDERIE" } } [27]=> array(1) { [674]=> array(2) { [0]=> string(2) "27" [1]=> string(12) "VAL-DE-REUIL" } } [28]=> array(1) { [402]=> array(2) { [0]=> string(2) "28" [1]=> string(9) "YMONVILLE" } } [29]=> array(1) { [282]=> array(2) { [0]=> string(2) "29" [1]=> string(25) "PONT-DE-BUIS-LES-QUIMERCH" } } [30]=> array(1) { [352]=> array(2) { [0]=> string(2) "30" [1]=> string(8) "RODILHAN" } } [31]=> array(1) { [587]=> array(2) { [0]=> string(2) "31" [1]=> string(5) "CAZAC" } } [32]=> array(1) { [541]=> array(2) { [0]=> string(2) "33" [1]=> string(11) "MARCHEPRIME" } } [33]=> array(1) { [342]=> array(2) { [0]=> string(2) "34" [1]=> string(12) "GRANDE-MOTTE" } } [34]=> array(1) { [352]=> array(2) { [0]=> string(2) "35" [1]=> string(9) "PONT-PEAN" } } [35]=> array(1) { [246]=> array(2) { [0]=> string(2) "36" [1]=> string(8) "VOUILLON" } } [36]=> array(1) { [276]=> array(2) { [0]=> string(2) "37" [1]=> string(18) "YZEURES-SUR-CREUSE" } } [37]=> array(1) { [532]=> array(2) { [0]=> string(2) "38" [1]=> string(10) "CHAMROUSSE" } } [38]=> array(1) { [543]=> array(2) { [0]=> string(2) "39" [1]=> string(8) "ARESCHES" } } [39]=> array(1) { [330]=> array(2) { [0]=> string(2) "40" [1]=> string(6) "YZOSSE" } } [40]=> array(1) { [290]=> array(2) { [0]=> string(2) "41" [1]=> string(14) "YVOY-LE-MARRON" } } [41]=> array(1) { [326]=> array(2) { [0]=> string(2) "42" [1]=> string(12) "CHAUSSETERRE" } } [42]=> array(1) { [259]=> array(2) { [0]=> string(2) "43" [1]=> string(10) "YSSINGEAUX" } } [43]=> array(1) { [220]=> array(2) { [0]=> string(2) "44" [1]=> string(10) "GRIGONNAIS" } } [44]=> array(1) { [333]=> array(2) { [0]=> string(2) "45" [1]=> string(14) "YEVRE-LA-VILLE" } } [45]=> array(1) { [339]=> array(2) { [0]=> string(2) "46" [1]=> string(22) "SAINT-PIERRE-LAFEUILLE" } } [46]=> array(1) { [318]=> array(2) { [0]=> string(2) "47" [1]=> string(13) "SAINT-GEORGES" } } [47]=> array(1) { [184]=> array(2) { [0]=> string(2) "48" [1]=> string(9) "VILLEFORT" } } [48]=> array(1) { [362]=> array(2) { [0]=> string(2) "49" [1]=> string(7) "YZERNAY" } } [49]=> array(1) { [600]=> array(2) { [0]=> string(2) "50" [1]=> string(13) "YVETOT-BOCAGE" } } [50]=> array(1) { [619]=> array(2) { [0]=> string(2) "51" [1]=> string(7) "MAGENTA" } } [51]=> array(1) { [432]=> array(2) { [0]=> string(2) "52" [1]=> string(5) "WASSY" } } [52]=> array(1) { [260]=> array(2) { [0]=> string(2) "53" [1]=> string(6) "VOUTRE" } } [53]=> array(1) { [593]=> array(2) { [0]=> string(2) "54" [1]=> string(21) "HAN-DEVANT-PIERREPONT" } } [54]=> array(1) { [499]=> array(2) { [0]=> string(2) "55" [1]=> string(19) "XIVRAY-ET-MARVOISIN" } } [55]=> array(1) { [260]=> array(2) { [0]=> string(2) "56" [1]=> string(12) "KERNASCLEDEN" } } [56]=> array(1) { [729]=> array(2) { [0]=> string(2) "57" [1]=> string(9) "STUCKANGE" } } [57]=> array(1) { [311]=> array(2) { [0]=> string(2) "58" [1]=> string(11) "VITRY-LACHE" } } [58]=> array(1) { [651]=> array(2) { [0]=> string(2) "59" [1]=> string(3) "DON" } } [59]=> array(1) { [692]=> array(2) { [0]=> string(2) "60" [1]=> string(6) "MARAIS" } } [60]=> array(1) { [504]=> array(2) { [0]=> string(2) "61" [1]=> string(8) "YVRANDES" } } [61]=> array(1) { [894]=> array(2) { [0]=> string(2) "62" [1]=> string(5) "YTRES" } } [62]=> array(1) { [469]=> array(2) { [0]=> string(2) "63" [1]=> string(17) "YSSAC-LA-TOURETTE" } } [63]=> array(1) { [473]=> array(2) { [0]=> string(2) "65" [1]=> string(8) "CANTAOUS" } } [64]=> array(1) { [225]=> array(2) { [0]=> string(2) "66" [1]=> string(6) "VIVIER" } } [65]=> array(1) { [526]=> array(2) { [0]=> string(2) "67" [1]=> string(11) "ZOEBERSDORF" } } [66]=> array(1) { [376]=> array(2) { [0]=> string(2) "68" [1]=> string(11) "ZIMMERSHEIM" } } [67]=> array(1) { [292]=> array(2) { [0]=> string(2) "69" [1]=> string(18) "COLOMBIER-SAUGNIEU" } } [68]=> array(1) { [544]=> array(2) { [0]=> string(2) "70" [1]=> string(13) "VY-LES-FILAIN" } } [69]=> array(1) { [572]=> array(2) { [0]=> string(2) "71" [1]=> string(10) "FLEURVILLE" } } [70]=> array(1) { [374]=> array(2) { [0]=> string(2) "72" [1]=> string(13) "YVRE-L'EVEQUE" } } [71]=> array(1) { [304]=> array(2) { [0]=> string(2) "73" [1]=> string(5) "YENNE" } } [72]=> array(1) { [293]=> array(2) { [0]=> string(2) "74" [1]=> string(6) "YVOIRE" } } [73]=> array(1) { [0]=> array(2) { [0]=> string(2) "75" [1]=> string(5) "PARIS" } } [74]=> array(1) { [744]=> array(2) { [0]=> string(2) "76" [1]=> string(16) "YVILLE-SUR-SEINE" } } [75]=> array(1) { [513]=> array(2) { [0]=> string(2) "77" [1]=> string(6) "YEBLES" } } [76]=> array(1) { [261]=> array(2) { [0]=> string(2) "78" [1]=> string(21) "VOISINS-LE-BRETONNEUX" } } [77]=> array(1) { [304]=> array(2) { [0]=> string(2) "79" [1]=> string(8) "XAINTRAY" } } [78]=> array(1) { [781]=> array(2) { [0]=> string(2) "80" [1]=> string(6) "YONVAL" } } [79]=> array(1) { [322]=> array(2) { [0]=> string(2) "81" [1]=> string(12) "SAINTE-CROIX" } } [80]=> array(1) { [194]=> array(2) { [0]=> string(2) "82" [1]=> string(9) "VILLEMADE" } } [81]=> array(1) { [152]=> array(2) { [0]=> string(2) "83" [1]=> string(20) "SAINT-ANTONIN-DU-VAR" } } [82]=> array(1) { [150]=> array(2) { [0]=> string(2) "84" [1]=> string(20) "VITROLLES-EN-LUBERON" } } [83]=> array(1) { [281]=> array(2) { [0]=> string(2) "85" [1]=> string(13) "FAUTE-SUR-MER" } } [84]=> array(1) { [280]=> array(2) { [0]=> string(2) "86" [1]=> string(7) "YVERSAY" } } [85]=> array(1) { [200]=> array(2) { [0]=> string(2) "87" [1]=> string(11) "VILLEFAVARD" } } [86]=> array(1) { [514]=> array(2) { [0]=> string(2) "88" [1]=> string(8) "ZINCOURT" } } [87]=> array(1) { [453]=> array(2) { [0]=> string(2) "89" [1]=> string(8) "YROUERRE" } } [88]=> array(1) { [101]=> array(2) { [0]=> string(2) "90" [1]=> string(14) "VILLARS-LE-SEC" } } [89]=> array(1) { [195]=> array(2) { [0]=> string(2) "91" [1]=> string(4) "ULIS" } } [90]=> array(1) { [35]=> array(2) { [0]=> string(2) "92" [1]=> string(21) "VILLENEUVE-LA-GARENNE" } } [91]=> array(1) { [39]=> array(2) { [0]=> string(2) "93" [1]=> string(12) "VILLETANEUSE" } } [92]=> array(1) { [46]=> array(2) { [0]=> string(2) "94" [1]=> string(15) "VITRY-SUR-SEINE" } } [93]=> array(1) { [184]=> array(2) { [0]=> string(2) "95" [1]=> string(19) "WY-DIT-JOLI-VILLAGE" } } [94]=> array(1) { [33]=> array(2) { [0]=> string(3) "972" [1]=> string(13) "BELLEFONTAINE" } } [95]=> array(1) { [21]=> array(2) { [0]=> string(3) "973" [1]=> string(10) "PAPAICHTON" } } [96]=> array(1) { [23]=> array(2) { [0]=> string(3) "974" [1]=> string(6) "CILAOS" } } }

Re: Remplir tableaux multidimension avec base mySQL

par zeus » 07 mai 2009, 09:58

est-ce que tu as essayé de faire un
var_dump($VillePHP);
pour voir ce que contenais réellement ton tableau ?

Remplir tableaux multidimension avec base mySQL

par Invité » 07 mai 2009, 09:41

Bonjour voilà je voudrais remplir deux tableaux avec mes tables SQL ( département et communes ) :
Pour le tableau departement pas de soucis (2 dimensions)
Mais pour le tableau commune ( 3 dimensions ) je n'arrive pas à le remplir correctement
Voici mon code:

$sql = "SELECT * FROM departements";
$result = mysql_query($sql); 	
			
	$DepPHP = array();
	$VillePHP = array();
	
	$j = 0;	
	while($rows = mysql_fetch_array($result))
	{
		@$departement	= $rows['departement'] ;
		@$Numero	= $rows['Numero'] ;
                //nouveau departement
		$DepPHP[$j] = array($Numero,$departement) ;
				
			$sql2 = "SELECT communes FROM communes WHERE Numero = '$Numero' ";
			$result2 = mysql_query($sql2); 	
			
			$i = 0;
			while($rows2 = mysql_fetch_array($result2))
			{
                                //Nouvelles villes pour le nouveau departement
				@$communes	= $rows2['communes'] ;
				$VillePHP[$j] = array();
				$VillePHP[$j][$i] = array($Numero,$communes) ;
				$i++;
			}
			$j ++;
	}
	echo $DepPHP[0][1]; //affiche mon premier departement
	echo $VillePHP[0][0][1]; // affiche une erreur ,devrai afficher la premiere ville de mon premier departement