dousong1992 2015-10-11 23:32
浏览 133
已采纳

在线输入PHP函数,查询(通过PDO)MySql输出JSON

This is my first time posting, so forgive me if I'm not perfect at this yet. I'm new to web development and most of what I have already gotten is just through searching for answers. I've been doing pretty well so far, but I can't seem to find a clear answer to what I'm trying to do.

I'm trying create an online database of Teacher Assistant information that's readily accessible. It's a self-assigned project that I'm doing with a combination of MySQL (database), PHP (for querying/echoing JSON), and HTML.

This is what I have so far:

(partial) test_db.sql:

CREATE TABLE IF NOT EXISTS `TAs` ( 
`ID` int(1) NOT NULL auto_increment, 
`Name` varchar(40) NOT NULL, 
 PRIMARY KEY (`ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 

INSERT INTO `TAs` (`Name`) VALUES 
 ('Firstname Lastname'), 
 ('Firstname2 Lastname2'), 
 ('Firstname3 Lastname3'), 
 ('Firstname4 Lastname4');
 ...
 ...

test_to_json.php:

<?php

function name($x) {

    $db = new PDO('mysql:host=localhost;dbname=json_test;charset=utf8', 'root', 'user');

    $sql = "select TAs.Name, Classes.Classname, Sessions.Day, Sessions.Time, Sessions.Location 
    from TAs, Classes, Sessions 
    where TAs.ID = Sessions.TAID and Classes.ID = Sessions.ClassID and TAs.name like '%$x%'";

    $array = $db->query($sql)->fetchAll(PDO::FETCH_ASSOC);

    echo json_encode($array), "
";
}

name($_POST["name"]);

?>

testing.html:

<!DOCTYPE HTML>
<html>
<body>

<form action="test_to_json.php" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>

</body>
</html>

First, is this even possible? Or is this an exercise in futility?

If it is, I know that my database and PHP are working to output the JSON. My problem comes with the html; when I'm trying to figure out how to use an online user input to create a search of the database.

So how do I implement something like this? Something like a HTML user input (i.e. a search) that submits to the PHP for for querying the MySQL and then returning the proper JSON for use?

A direct answer would be awesome! Resources that could teach me work too though; learning is great. Really anything that can put me on the right track is welcome.

Thanks for any help!

展开全部

  • 写回答

1条回答 默认 最新

  • dongwei3172 2015-10-12 07:48
    关注

    You did not put your value inside the input.

    <form action="test_to_json.php" method="post">
    Name: <input type="text" value="" name="name"><br>
    <input type="submit">
    </form>
    

    What helps is if you download an addon ( Firebug ) for firefox. This will show you what you have posted in the "Net" tab. If it is showing your post it meens that your html works fine. Try that and see if it works. If not, let me know. And Also, its better to work with a INNER JOIN

    $sql = "SELECT 
    T.Name, C.Classname, S.Day, S.Time, S.Location 
    FROM TAs AS T 
    INNER JOIN Sessions AS S 
    ON T.ID = S.TAID 
    INNER JOIN Classes AS C 
    ON C.ID = S.ClassID 
    WHERE T.Name LIKE '%$x%'";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部