请教:如何将sql查询结果生成多维数组
我想实现的功能是这样的:
我传递一串数字供sql接收,数字的形式是菜品的ID值,类似“1,2,3,”,经过查询可以变成根据菜品分类而来的多维数组。
第一个问题,我如何将这个字符串分离开后循环利用sql查询并保存全部结果呢?
$s=$ids;//接收到的ID字符串
$sqlslt_veginfo="select {$tb_veg}.veg_id,{$tb_veg}.vsort_id,{$tb_veg}.veg_name,{$tb_veg}.veg_preprice,{$tb_veg}.veg_favprice,{$tb_veg}.veg_picstr,{$tb_veg}.veg_ptfs,{$tb_veg}.veg_ts,{$tb_veg}.veg_fj from {$tb_veg} where {$tb_veg}.veg_id='{$s}'and {$tb_veg}.vdel_vfy='0'";$query_veginfo=$pdodb->query($sqlslt_veginfo);$array_veginfo=$query_veginfo->fetch(2);$a=array( "2" => Array ( "1" => Array ( "id" => 728, "name" => "玉带香油莴笋", "preprice" => 68, "favprice" => 68, "pic" => jdcpic1342685874.jpg, "num" => 1, "ts" => 0, "fj" => "" ), "2" => Array ( "id" => 727, "name" => 新杭帮熏鱼, "preprice" => 38, "favprice" => 38, "pic" => jdcpic1342685755.jpg, "num" => 1, "ts" => 0, "fj" => "" ) ), "1" => Array ( "1" => Array ( "id" => 749, "name" => 秘制日本二十头极品鲍鱼, "preprice" => 888, "favprice" => 888, "pic" => jdcpic1342688648.jpg, "num" => 5, "ts" => 0, "fj" => "" ), "2" => Array ( "id" => 748, "name" => 原汁慢煮焖煨中东干鲍鱼, "preprice" => 788, "favprice" => 788, "pic" => jdcpic1342688600.jpg, "num" => 1, "ts" => 0, "fj" => "" ), "3" => Array ( "id" => 747, "name" => 炝椒酱爆嫩鸡丁, "preprice" => 20, "favprice" => 20, "pic" => jdcpic1342688515.jpg, "num" => 1, "ts" => 0, "fj" => "" ) ));
看看是不是你想要的,如果不是,也应包含你想要的一切信息,只是格式不对劲而以,你重新组合一下,我估计对劲;如果不对劲把这个调试结果打印出来让大家看一下
[解决办法]
where {$tb_veg}.veg_id='{$s}'and {$tb_veg}.vdel_vfy='0'";
语句的这句你能看懂不,改为这样测试一下
where {$tb_veg}.veg_id='{$s}' or {$tb_veg}.veg_id='{$s1}' and {$tb_veg}.vdel_vfy='0'";
不知你明白意思了没,再测一下,看数据出来了没
[解决办法]
建议楼主仔细看一下你的pdo库,里面应该有提供方法是直接获取所有查询结果的。
[解决办法]
楼主可以将多个sql 的where条件组成数组,用explode分隔开。