2015-10-12 21 views
0

這是我第一次發佈,所以請原諒我,如果我現在還不完美。 我是網絡開發新手,我已經獲得的大部分內容都是通過搜索答案。到目前爲止,我的表現相當不錯,但我似乎無法找到我想要做的事情的明確答案。在線輸入到PHP函數,查詢(通過PDO)MySql輸出JSON

我正在嘗試創建一個隨時可以訪問的教師助理信息的在線數據庫。這是一個自我分配的項目,我正在結合使用MySQL(數據庫),PHP(用於查詢/回顯JSON)和HTML。

這是我到目前爲止有:

(部分)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), "\n"; 
} 

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> 

首先,這甚至有可能嗎?或者這是徒勞的練習?

如果是這樣,我知道我的數據庫和PHP正在輸出JSON。我的問題伴隨着html;當我試圖找出如何使用在線用戶輸入來創建數據庫搜索時。

那麼我該如何實現這樣的事情呢?就像提交給PHP查詢MySQL然後返回正確的JSON以供使用的HTML用戶輸入(即搜索)一樣?

直接的答案會很棒!可以教我的資源也可以工作;學習很棒。真的,任何可以讓我走上正軌的東西都是值得歡迎的。

感謝您的幫助!

回答

0

你沒有把你的價值放在輸入中。

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

如果你爲Firefox下載一個插件(Firebug),有什麼幫助。這會告訴你你在「網絡」選項卡中發佈的內容。如果它顯示你的文章,它表明你的HTML工作正常。試試看看它是否有效。如果沒有,請告訴我。此外,它更好地使用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%'";