我有nooby PHP問題,我不明白!循環訪問數據庫行並創建單個數組
通過從我的數據庫行我循環:
$data = array();
while($row = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_ASSOC)){
$data[] = $row;
}
$data
現在包含一個陣列內的陣列我怎麼能有它,這樣它仍然只是一個單一的陣列?
感謝所有
我有nooby PHP問題,我不明白!循環訪問數據庫行並創建單個數組
通過從我的數據庫行我循環:
$data = array();
while($row = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_ASSOC)){
$data[] = $row;
}
$data
現在包含一個陣列內的陣列我怎麼能有它,這樣它仍然只是一個單一的陣列?
感謝所有
這更明顯的方式:
$data = array();
while($row = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_NUMERIC){
$data = array_merge($data, array_values($row));
}
這是因爲每個$row
是一個關聯數組。如果你只是希望數據是值從一列的數組,指定列:
$data = array();
while($row = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_ASSOC)){
$data[] = $row['column_name_you_want'];
}
太棒了,謝謝。打印所有列名的操作非常繁瑣,但我明白了你的方法。 – Abs 2010-07-01 13:36:15
嗯......這是什麼意思?爲了正確獲取所有數據,無論如何您都需要2D數組。您只需切換維度的順序,但無法擁有多維數組。 – quantumSoup 2010-07-01 13:39:42
(1)這是一個關聯數組,因此您需要至少在某處輸入每個列名以訪問數據。 (2)根據你需要處理的數據,重新安排它可能是浪費時間。如果你把行放到'$ data'中,你總是可以像這樣做'$ data [0] ['column_name']來訪問第一行的'column_name'等。 – takteek 2010-07-01 13:48:07
這應該讓你的所有值從所有列和行返回一個一維數組
$data = array();
while($row = sqlsrv_fetch_array($queryResult, SQLSRV_FETCH_ASSOC){
$values = array_values($row);
foreach($values as $value)
{
$data[] = $value;
}
}
我看到這是一個老問題,但我也在尋找一個解決方案。想出這對我的作品如下:
function mssql_query($conn, $query, array $bind = array()) {
$stmt = sqlsrv_query($conn, $query, $bind);
if($stmt=== false) {
// do something with the error information
// die(print_r(sqlsrv_errors(), true));
return array();
}
sqlsrv_execute($stmt);
$data = array();
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
array_push($data, $row);
}
return $data;
}
可以直接在foreach循環使用:
foreach(mssql_query($conn, $query) as $row) {
echo $row['column'];
}
或分配給一個變量計數等
$ conn是當然是連接(來自PHP.net):
$serverName = "server.example.com"; // remember to append instance if applicable
$connectionInfo = array("Database"=>"dbname", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
一個什麼數組?你可能想要通過數據庫ID索引數據[],對吧? – galambalazs 2010-07-01 13:30:50
@galambalazs - 它是我數據庫中的一行數組。我只想把它作爲一個單一的數組,以便我可以更容易地處理它。沒有真正的需要,但我想知道如何做到這一點,以防我需要。 – Abs 2010-07-01 13:35:02