【发布时间】:2010-09-15 23:35:03
【问题描述】:
尝试在 php.ini 中填充数组时遇到问题。似乎一旦我使用 mysql_fetch_assoc 方法进入 while 循环,我就无法填充我的数组。我已经包含了下面的代码。
$params = $_REQUEST['params'];
$arr["status"]="ok";
$projects=array();
$files=array();
$titles=array();
$query = 'SELECT p.id as pid, f.fname as name, f.title FROM proj p INNER JOIN pic f ON f.projid=p.id WHERE p.catid=\'' . $params['category'] . '\' ORDER BY p.ordr, f.ordr';
require("../php/connect.php");
//select all projects from chosen category and pics from selected projects
$proj_result = mysql_query($query) or die ("Select failed");
//populate from rows
while($row = mysql_fetch_assoc($proj_result)){
$projects[]=$row["pid"];
$files[]=$row["name"];
$titles[]=$row["title"];
}
$arr["projects"]=$projects;
$arr["files"]=$files;
$arr["titles"]=$titles;
echo json_encode($arr);
结果:{"status":"ok","projects":[],"files":[],"titles":[]}
谢谢。
【问题讨论】:
-
应该,while 循环不会在 PHP 中打开它自己的范围。您确定
$proj_result中有任何行(注释掉的mysql_num_rows()? -
那么,
$i是做什么的?您在每次 while 循环迭代时将其设置为零。 -
你应该解决这个问题 if($i=0){ 应该是 if($i==0){
-
mysql_num_rows() 是我计划稍后实施(暂时删除)的东西,感谢您指出这一点。我已将 $i=0 固定为 $i==0。这是循环中的第一次运行,在 html 中具有缩略图 img 将用于精美的盒子画廊。
-
在您完成查询后尝试添加
var_dump(mysql_num_rows($proj_result))并告诉我们您得到了什么。
标签: php scope while-loop