繁体   English   中英

SQL数据库到Json数组

[英]SQL database to Json array

您好,我最近使用此教程创建了一个数据库: https : //www.digitalocean.com/community/tutorials/a-basic-mysql-tutorial

我需要将sql数据库转换为json数组(如下图所示),我正在使用手机间隙制作我的第一个移动应用程序,这个问题不是关于手机间隙的,但是我怀疑提供一些上下文不会受到伤害。

我希望该应用程序(只能使用html,css和js)向sql数据库发出请求,对我而言,最好的方法是在电话向json发送请求后,将整个数据库转换为json数组。当天,新的json数据库将在手机上缓存。

(即使这样的缓存是不可能的或不切实际的,对于这个问题也没有关系)

我通过以下方法向数据库添加了三个“列表”:

INSERT INTO anime 
(id
,category
,genre
,title
,description 
,image_link
,date_added
) VALUES 
(NULL
,"Mainstream"
,"Action"
,"the title"
,"the name"
,"200 word description"
,"imagename.png"
,'2012-04-14'
);

我不确定该方法是否按照我想要的方式创建了数据库,因为我尝试对完整信息进行多次请求,并且只有一种方法可以说我的PHP技能是垃圾。

在此处输入图片说明

我一直希望生成类似的东西(任何更好的格式化方式,以及如何轻松地从中获取和使用信息),我一直在研究json_encode(); 并已阅读: 如何从mysql数据库和其他堆栈构建JSON数组

categories: [
        {
        "category-name" : "Mainstream",
        "category-description" : "Everyones watching them for a reason",
        "category-link" : "#mainstream",
        "Mainstream" : [
            {
                "genres" : [
                    {
                        "genre-name" : "Action",
                        "genre-description" : "Mainstream: Fight them off",
                        "list" : [
                            {
                                "img" : "www.ActionimglinkMainstream1.com",
                                "name" : "ActionMainstreamname1",
                                "description" : "this Action is Mainstream name 1"
                            },
                            {
                                "img" : "www.ActionimglinkMainstream2.com",
                                "name" : "ActionNewname2",
                                "description" : "this Action is Mainstream name 2"
                            },
                            {
                                "img" : "www.FantasyimglinkMainstream3.com",
                                "name" : "FantasyMainstreamname3",
                                "description" : "this Action is Mainstream name 3"
                            }
                        ]
                    },
                    {
                        "genre-name" : "Fantasy",
                        "genre-description" : "Mainstream: I put a spell on you",
                        "list" : [
                            {
                                "img" : "www.FantasyimglinkMainstream1.com",
                                "name" : "FantasyMainstreamname1",
                                "description" : "this Fantasy is Mainstream name 1"
                            },
                            {
                                "img" : "www.ActionimglinkMainstream2.com",
                                "name" : "FantasyNewname2",
                                "description" : "this Fantasy is Mainstream name 2"
                            },
                            {
                                "img" : "www.FantasyimglinkMainstream3.com",
                                "name" : "FantasyMainstreamname3",
                                "description" : "this Fantasy is Mainstream name 3"
                            }
                        ]
                    }
                ]
            }
    ]
    }]

感谢您的时间,信息和见解! 请理解我是PHP,mysql和JavaScript的新手,但不是google / stackoverflow我已经在google上搜索和搜索并尝试自己做过,但是它不起作用。

为了清楚起见,我想知道如何将mySQL数据库转换为json数组,以便可以从html + js移动应用程序发出请求。

要确认如何设置数据库:

在此处输入图片说明

我建议将答案(对还是错,没关系,投票决定答案)放入答案部分。 因为它更容易阅读

无论如何,尝试一下。 这正在使用PDO(mysqli的替代方法)

  1. 连接到数据库并执行SELECT,可以使用INNER JOINS,LEFT JOINS,UNION等使它变得尽可能复杂

     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT * FROM anime"); $stmt->execute(); // set the resulting array to associative $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 
  2. 然后,您想通过已经知道的json_encode将其转换为JSON

     $output = json_encode($result) 
  3. 您要输出(作为JSON)。 您可以使用echo并且不要忘记将标头设置为JSON

     header('Content-Type: application/json'); echo (output); 

请注意,此PHP返回的是JSON,而不是按照@ user1871802的建议将其注入javascript

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM