【发布时间】:2014-03-20 07:58:13
【问题描述】:
我是 Json 的新手,我无法用从 mysql 查询中收集的数据填充 json 列表。 列表中只填充了一个值,并且它不断重复而不是显示所有值。 代码是:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db('abcd');
$jsonData = 0;
$result = mysql_query("SELECT picname,title,date,time,location,timestamp FROM uploaded_photo_data ORDER BY timestamp DESC ");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
if (mysql_num_rows($result) > 0) {
$num = mysql_num_rows($result);
while ($row = mysql_fetch_assoc($result)) {
$a = $row['location']."/".$row['picname'];
echo $row['timestamp'];
echo $a;
echo $row['picname'];
echo $row['title'];
echo $row['location'];
echo "<br></br>";
$dir = $row['location']."/";
$jsonData = '{';
$x = 0;
$dirHandle = opendir($dir);
while($x!=$num){
$x++;
$jsonData .= '"img'.$x.'":{ "num":"'.$x.'","title":"'.$row['title'].'","src":"'.$a.'", "timestamp":"'.$row['timestamp'].'"},<br></br> ';
}
}
}
closedir($dirHandle);
$jsonData = chop($jsonData, ",");
$jsonData .= '}';
echo $jsonData; echo $x;
【问题讨论】:
-
这段代码没有逻辑。您在第一个 while 循环内创建
$jsonData变量,然后在同一个循环中(仍在处理第一行)您迭代行数并填充$jsonData。一次又一次,而$jsonData总是被覆盖。您的$jsonData最终将包含最后一个数据库结果行 n 次,其中 n 是结果数。我的建议,从头开始。
标签: php mysql ajax json database