我有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