Как вернуть данные, извлеченные из MySQL, в файл php как JSON? - PullRequest
2 голосов
/ 19 октября 2010

Я должен вернуть данные, извлеченные из таблицы 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);
    ?>

Under - это полный стек, который мне нужно реализовать.На шаге 3 я рендерил список динамически, используя пользовательские вводы, хотя он не использует какой-либо движок, а непосредственно использует входные значения, поэтому я должен увидеть, как это сделать, когда я получу данные JSON.Я положил стопку так, чтобы вы, люди, любезно увидели, что я должен делать, когда возможно помогаю мне.

  1. пользователь загружает HTML-страницу
  2. страница выполняет вызов ajax и получает параметры в виде JSON (либо он уже существует в базе данных, либо генерируется новый набор параметров))
  3. json визуализируется с использованием движка шаблонов JS (в нашем случае PURE)
  4. пользователь что-то меняет
  5. тот же JSON изменяется и отправляется POST всервер
  6. сервер читает этот JSON и сохраняет его в базе данных (вы записываете данные в свой файл).А затем вернитесь к шагу 4, чтобы дождаться другого изменения пользователя.

Ответы [ 3 ]

3 голосов
/ 19 октября 2010

Учитывая, что возвращается только одна строка 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 Manual, чтобы использовать ее вместо этого.

2 голосов
/ 19 октября 2010

Я думаю, что вы ищете json_encode

1 голос
/ 19 октября 2010

Если вы не похожи на меня, использующего мучительно старую версию Symfony (ради вас, надеюсь, нет!), Ваш ответ будет json_encode У Zend и CodeIgniter есть аналогичные другие простые методы.

Если вам не повезло иметь доступ к этому, вы можете создать его вручную через цикл foreach.

Вы можете проверить строки JSON, используя JSONlint

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...