如何用php直接将SQL的查询结果变成一个数组?

一定要用这个形式么?有没有直接复制给一个二维数组的
while($row = mysql_fetch_array($result))
{
}

1、登录sql server managment管理工具,找一个表。

2、假如要按照时间倒着排序。

3、直接在order by 后面加desc。

4、然后结果就按照时间倒着排了。

5、不输入desc的话就是正着排。

6、可以看到结果按照时间正着排了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-01-25
我也很就纠结这个问题,现在我是这样做的
$res = mysqli_query ($sql, "select BCur from microvast where id between 1 and 50");
foreach($res as $x=>$x_value) {
foreach($x_value as $k=>$v) {
$data[] = $v;
}
这样可以$data[]生成了‘BCur’一列的一个索引数组,但是执行效率不高,多列就要做多次查询,期待更好的方法。
while ($row=mysqli_fetch_assoc($res)){
$id=$row["id"];
......

echo $id;
}
这个办法只能打印出来本回答被网友采纳
第2个回答  2013-06-14
没有,两个办法,一个是自己封装一个函数(这也是为啥以前很多人都会自己写一个mysql类的原因,可以更高效的增删改查)

推荐第二个,放弃mysql系列函数,用PDO系列吧。目前除了新手外基本没人用mysql系列了,另外,从PHP5开始不再默认支持mysql扩展,因此早点脱离吧。
第3个回答  2013-06-14
这种函数就是一次拿一行的数据,所以才要放到while循环体里面,mysql和mysqli扩展库都是这种,pdo里面可以一次全部拿出来,其实意义不大,就是少几行代码的事
第4个回答  推荐于2016-08-28
mysql_fetch_array($result)这东西不就是个数组么。

你用print_r(mysql_fetch_array($result));die();打印一下,看看打出来的时候什么结构的东西,就会用了追问

print_r(mysql_fetch_array($result));只出来第一个搜索结果...所以才想问有没有办法绕过这个直接把所有的搜索结果存入一个二维数组

追答

...你print_r($result);die();看看

追问

print_r(mysql_fetch_array($result));die(); 的结果
Array ( [0] => oBJ [Uid] => oBJ [1] => 6066 [Mem] => 6066 [2] => 0 [YH1] => 0 [3] => 0 [YH2] => 0 )

print_r($result);die();的结果
Resource id #3

只能显示一条结果

追答

额。。那就不知道了。。没这样连过mysql。。学的时候直接用的zendframework,它封装了操作数据库的方法。。。$this->DB->fetchAll($sql);返回的直接就是数组。。。

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网