dousong1992 2015-10-12 07: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 15: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%'";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch