PHP 创建 JSON 数组列表(数据来自 MySQL)

标签 php mysql ajax json database

我是 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;

最佳答案

您可以使用 json_encode 方法将数组编码为 JSON。

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

上面的例子会输出:

{"a":1,"b":2,"c":3,"d":4,"e":5}

php.net/manual/en/function.json-encode.php

编辑:

也许这对你有用:

$jsonData = array();
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']."/";    
    $x = 0;

    while($x!=$num){
        $x++;
        $img = 'img'.$x;
        $jsonData[$img] = array(
            "num" => $x,
            "title" => $row['title'],
            "src" => $a,
            "timestamp" => $row['timestamp']
        );
    }
}

print json_encode($jsonData);

关于PHP 创建 JSON 数组列表(数据来自 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22526771/

相关文章:

php - 为什么 PHP 属性不允许函数?

php - 如何忽略 PHP 中准备好的 mysqli 查询中的参数?

java - 计算mysql中的总登录注销时间

javascript - 登录表单电子邮件 ID 将使用 ajax 成功功能显示在密码重置表单中,无需刷新页面

php - 为什么 PHP 转换 MySQL BIT(1) 值 b'0' to boolean ' true'

php - 如何使用 pkcs12 (p12) 证书发送到 Transunion API?

php - 在 XSL 中定义 PHP 函数并调用它。可能的?如何?

PHP类,使用 'var'声明变量时解析语法错误

javascript - 当 AJAX 更改 URL 而不重新加载页面时,如何重新加载 Greasemonkey 脚本?

php - 如何使用 Ajax 在 Kartik 输入文件中发送所选文件?