MSSQL 将多行返回到数组中,每行分解为一个数组
Posted
技术标签:
【中文标题】MSSQL 将多行返回到数组中,每行分解为一个数组【英文标题】:MSSQL returns multiple rows into array, explode into one array per row 【发布时间】:2013-02-27 08:49:57 【问题描述】:我有一个 MSSQL 查询,它选择满足特定条件的所有行。在 php 中,我想获取该数组,但随后我想将其转换为每行一个数组。因此,如果我的查询返回 3 行,我希望有 3 个可以使用的唯一数组。
我不知道该怎么做。任何帮助将不胜感激!
谢谢,内森
编辑:
$query = "SELECT * FROM applicants WHERE applicants.user_id ='$_SESSION['user_id']'";
$query_select = mssql_query($query , $connection);
if (mssql_num_rows($query_select) == 2)
$message = '2 students created successfully';
$i = 0;
while($row = mssql_fetch_array($query_select))
$student.$i['child_fname'][$i] = $row['child_fname'];
$student.$i['child_lname'][$i] = $row['child_lname'];
$i++;
$query_array1 = $student0;
$query_array2 = $student1;
您会从上面的代码中注意到,我期望返回两行。现在,我想取这两行并从结果中创建两个数组。我尝试使用下面给出的解决方案。也许我的语法不正确,或者我不明白如何正确实施他的解决方案。但任何帮助将不胜感激。
【问题讨论】:
我猜你可以copy the array object 并删除你不需要的行...但是为什么不直接引用index of the different rows? 我需要返回所有行,但我需要将它们作为单独的数组使用,而不是作为一个大数组。 【参考方案1】:$query = mssql_query('SELECT * FROM mytable');
$result = array();
if (mssql_num_rows($query))
while ($row = mssql_fetch_assoc($query))
$result[] = $row;
mssql_free_result($query);
现在您可以随意使用数组了:
print_r($result[0]); //first row
print_r($result[1]); //second row
...
【讨论】:
“我需要将它们作为单独的数组使用”是什么意思?你需要 $r1; $r2; ... 数组? 老兄,效果很好!非常感谢您的解决方案。 我将如何拆分 assoc.数组转换成单独的数组? 在 PHP 中你只能创建动态变量作为类属性,所以如果真的需要它,你应该创建类并存储结果,创建 getter 方法和结果将像: $result->row1; $结果->行2;但是你需要这个做什么?【参考方案2】:$i=0;
while( $row = mysql_fetch_array(query)
$field1['Namefield1'][$i] = $row['Namefield1'];
$field2['Namefield2'][$i] = $row['Namefield2'];
$field3['Namefield3'][$i] = $row['Namefield3'];
$i++;
或者如果你喜欢二维数组:
$i=0;
while( $row = mysql_fetch_array(query)
$result['Namefield1'][$i] = $row['Namefield1'];
$result['Namefield2'][$i] = $row['Namefield2'];
$result['Namefield3'][$i] = $row['Namefield3'];
$i++
【讨论】:
以上是关于MSSQL 将多行返回到数组中,每行分解为一个数组的主要内容,如果未能解决你的问题,请参考以下文章