2014-01-13 29 views
1

使用select查詢從數據庫中選擇一些數據。如何僅打印數組的索引

我使用while循環提取數據。

while($row=mysql_fetch_array($query1)) 
{ 

} 

現在我想只打印$行的索引。

我試着用以下語句來打印,但它打印索引和值(鍵==>值)

foreach ($row as $key => $value) { 
    echo $key ; 
} 

我試圖array_keys()也是BT,也沒有對我很有幫助。

echo implode(array_keys($row)); 

請幫忙解決這個問題。

我需要只打印索引。

+0

你是什麼意思的指數?數組的索引(在你的案例中是列名)還是記錄的ID? – MSadura

+0

我需要打印的鍵不值。 – sandeep

+0

你在第一和第二個循環中使用了相同的'$ row'嗎?如果是的話 - 那麼你在第一個循環中覆蓋它,然後在第二個 –

回答

0

您應該在Implode函數中傳遞分隔符(膠合文字)。

對於以逗號分隔的數組鍵,可以使用下面的代碼。

echo implode(",",array_keys($row)); 
+0

使用上面的語句也打印0,sa,1,ff,2df這樣但我只需要關鍵值0,1,2。 – sandeep

+0

那你想做什麼? –

+0

'glue'參數是可選的 - 'implode()'可以在沒有它的情況下工作。 –

2

您正在提取的結果列既關聯數組和一個數值數組(缺省值),請參閱手冊上mysql_fetch_array

如果你只需要數字陣列,使用方法:

while($row=mysql_fetch_array($query1, MYSQL_NUM)) 

順便說一句,你應該爲mysql_*功能已被棄用切換到PDO或mysqli的。

+1

無需額外工作即可簡單又好用:-) –

0

while循環中的$row變量會在每次迭代中被覆蓋,因此foreach將無法​​按預期工作。

存儲每個$row在陣列中,像這樣:

$arr = array(); 
while($row=mysql_fetch_array($query1)) { 
    $arr[] = $row; 
} 

現在,打印數組的鍵,你可以使用一個簡單的implode()

echo implode(', ', array_keys($arr)); 
0

從而QUERY1 $($行= mysql_fetch_array($ query1))應該是來自

的結果
$query1 = mysql_result("SELECT * FROM table"); 
//then 
while($row=mysql_fetch_array($query1)) 

只得到鑰匙使用mysql_fetch_row

$query = "SELECT fields FROM table"; 
$result = mysql_query($query); 
while ($row = mysql_fetch_row($result)) { 
    print_r(array_keys($row)); 
}