iT邦幫忙

0

mysql 輸出到 php array 然後印出?

我想印出的內容是

$SQL = mysql_query("SELECT `fid` FROM `users_friend`
WHERE `id` = '".$_SESSION['id']."' AND `request` = '1'
"); 

想要印出有符合的fid 我的fid都是數字

$demo = array();
$k=0;
while ($row = mysql_fetch_array($SQL))
{
 $demo[$k] = $row;
 $k++;
 
}
print_r($demo);

但是他印出結果會是這樣
Array ( [0] => Array ( [0] => 2 [fid] => 2 ) [1] => Array ( [0] => 5 [fid] => 5 ) [2] => Array ( [0] => 3 [fid] => 3 ) )

但是我只要印出 253 就好了
請問該怎麼解? 是否可用foreach?

2 個回答

5
fillano
iT邦超人 1 級 ‧ 2016-09-04 19:58:39
最佳解答

詳情請參閱公開說明書:http://php.net/manual/en/function.print-r.php

簡單地說,print_r是列印傳入變數的資訊,說白話就是為了debug用的,不是給你這樣用的。你要印出253,請在while迴圈中直接用echo印出$row['fid']就好了。

weiclin iT邦高手 4 級 ‧ 2016-09-04 20:31:18 檢舉

/images/emoticon/emoticon06.gif

我想都沒想過他竟然是把 print_r 當成 echo 在用...........

asys0512 iT邦研究生 5 級 ‧ 2016-09-04 22:14:01 檢舉

沒錯...會錯意了!

1
weiclin
iT邦高手 4 級 ‧ 2016-09-04 19:53:02

大概是這樣吧...

$demo = array();
while ($row = mysql_fetch_array($SQL))
{
 $demo[] = $row['fid'];
}
print_r($demo);

不過 mysql_fetch_array 在 php 5.5 以後就不能用了,你確定還要學習這種舊的方法?

我建議改用 mysqli, 找一本有教 mysqli 的書來看吧。

asys0512 iT邦研究生 5 級 ‧ 2016-09-06 15:16:24 檢舉

大大 我的虛擬主機是PHP 5.2 有看到5.6正在BATA 可以換5.4版本 想請問假設在5.2使用mysqli是否可以使用呢 這樣以後換版本就不用改了

asys0512 iT邦研究生 5 級 ‧ 2016-09-06 15:18:34 檢舉

疑? 我發現好像只要把mysql加上i就好了

weiclin iT邦高手 4 級 ‧ 2016-09-06 17:41:08 檢舉

mysqli 存在很久嘍.. 用法也大同小異

基本上把 mysql_xxx 改成 mysqli_xxx, 再把參數用法都檢查一下有沒有差異就行了

我要發表回答

立即登入回答