Как вернуть данные, извлеченные из MySQL, в php-файл в формате JSON?
Я должен вернуть данные, извлеченные из таблицы MySQL, в файл php в формате JSON. Вот мой код для подключения к mysql и получения из него данных. Как теперь я могу вернуть его как JSON.
<?php
$username = "user";
$password = "********";
$hostname = "localhost";
$dbh = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
print "Connected to MySQL<br>";
$selected = mysql_select_db("spec",$dbh)
or die("Could not select first_test");
//$rows = array();
$query = "SELECT * FROM user_spec";
$result=mysql_query($query);
//mysql_close($dbh);
?>
Под полным стеком, который я должен реализовать. Для шага 3 я визуализирую список динамически, используя вводимые пользователем данные, хотя он не использует какой-либо движок, а напрямую использует входные значения, поэтому мне нужно посмотреть, как это сделать, как только я получу данные JSON. Я кладу стопку, чтобы вы, люди, могли любезно увидеть, что я должен делать, когда возможно, помогает мне.
- пользователь загружает HTML-страницу
- страница выполняет вызов ajax и получает параметры в виде JSON (либо он уже существует в базе данных, либо создается новый набор параметров)
- json визуализируется с использованием механизма шаблонов JS (в нашем случае ЧИСТОГО)
- пользователь что-то меняет
- тот же JSON модифицируется и отправляется по почте на сервер
- сервер прочитал этот JSON и сохранил его в базе данных (вы бы записали данные в свой файл). А затем вернитесь к шагу 4, чтобы дождаться другого изменения пользователя.
3 answers
Учитывая, что возвращается только одна строка user_spec
, вы можете использовать встроенный json_encode
функция:
<?php
$username = "user";
$password = "********";
$hostname = "localhost";
$dbh = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
//print "Connected to MySQL<br>";
$selected = mysql_select_db("spec",$dbh)
or die("Could not select first_test");
$query = "SELECT * FROM user_spec";
$result=mysql_query($query);
echo json_encode(mysql_fetch_assoc($result));
?>
Должно сработать.
Даже если вы используете более старую версию PHP, вы можете найти подходящую функцию в комментариях пользователей на странице руководства json_encode
PHP, чтобы использовать ее на своем месте.
Я думаю, что вы ищете json_encode
Если вы не похожи на меня, использующего болезненно старую версию Symfony (ради вас, я надеюсь, что нет!), ваш ответ json_encode Zend и CodeIgniter имеют аналогичные другие простые методы.
Если вам не повезло получить к нему доступ, вы можете создать его вручную с помощью цикла foreach.
Вы можете проверить свои строки JSON с помощью JSONLint