2014-06-10 19 views
0

的數組我有一個SQL查詢,像這樣:遍歷查詢,並有位置

SELECT name, rbl.locationlabel FROM `pages` INNER JOIN locations as rbl ON rbl.locationId = pages.locationId 

這將返回名稱的列表和locationlabel,locationlabel要麼是「位置」,「位置B. 」或‘位置C’我有什麼是這樣的:

$query = mysqli_query($connection, "SELECT name, rbl.locationlabel FROM `pages` INNER JOIN locations as rbl ON rbl.locationId = pages.locationId"); 
       $results = array(); 
       $results['location'] = array(); 
       while($row = mysqli_fetch_assoc($query)){ 
         $results[] = $row; 
       } 
       return $results; 

通過的結果,此將循環,並把它變成一個數組,我所希望做的是要麼另一個數組或結果裏的數組數組以具有每個位置並具有分配給該位置的名稱。

很多幫助將不勝感激。

+0

你能提供一個具體的例子輸出嗎? – Fabricator

回答

0

假設name領域是獨一無二的,你可以簡單地有:

while($row = mysql_fetch_assoc($query)) { 
    $results[$row['name']] = $row; 
} 

但是如果你重複的名字,那麼你需要一些發燒友的邏輯,比如創建子陣:

$results[$row['name']][] = $row; 
+0

我想用戶想要一個數組,其索引將是位置的名稱,內容將是屬於該位置的人員的名稱。 – user1613360

0

你可以這樣做:

<?php 
$con=mysqli_connect("localhost","root","","abc1"); 

if($con) 
{ 

$i=0; 

$query="select distinct location from locations"; 
$result=mysqli_query($con,$query); 
while($re=mysqli_fetch_array($result)) 
{ 
$x[]=$re; 
} 

} 

$m=array(); 
for($i=0;$i<3;$i++) 
{ 

$query="SELECT name FROM `pages` INNER JOIN locations as rbl ON rbl.locationId = pages.locationId"; 
$z=$x[$i]['location']; 
echo $query; 
$result=mysqli_query($con,$query); 

while($re=mysqli_fetch_array($result)) 
{ 
foreach($re as $q) 
$m["'".$z."'"][]=$q; 
} 



} 


print_r($m); 


?> 

它存儲在一個arra y其索引是位置的名稱。

樣本輸出:

Array (['A'] => Array ([0] => John [1] => Jim [2] => Jack) 
['B'] => Array ([0] => Joseph [1] => Mary) 
['C'] => Array ([0] => Bale [1] => Cyrus [2] => Mike [3] => Rhode)) 

可以使用name_of_array['location_name'][number of name records]

希望它可以幫助訪問的元素。