2015-05-25 3 views
4

У меня есть следующий код PHP:Как я могу вернуть json из моего конкретного запроса sql?

<?php 
$servername = "host"; 
$username = "user"; 
$password = "passw"; 
$dbname = "dbname"; 

$conn3 = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

$conn3->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$q3 = $conn3->prepare("SELECT c.one, c.two FROM table c"); 
    $q3->execute(); 
if($q3->rowCount()>0) 
{ 
    $check3 = $q3->fetchAll(PDO::FETCH_ASSOC); 
    $arr = array(); 
    foreach ($check3 as $row) { 
    $arr[] = $row; 
    //how can I return json format here? 
    } 
} 
$conn2 = null; 
?> 

и этот запрос возвращает пары элементов. Но как я могу изменить код выше, чтобы получить формат JSON элементов, как:

{key1: OSO; key2: AIKA} и т.д.

, так что я могу использовать его в дальнейшем в файле Jquery для печати это со следующим fuction:

$.getJSON('list.php', function(json) { 
    //assuming list.php resides with list.html directory 
    //console.log(json) 
     console.log(json.result.key1); 
     console.log(json.result.key2); 

    }); 

спасибо!

ответ

2

Изменить

SELECT c.one, c.two FROM table c 

в

SELECT c.one as key1, c.two as key2 FROM table c 

Затем инкапсулировать результаты в формате JSON (после foreach):

echo json_encode(array(
    'result'=>$arr 
)); 

Но вы, скорее всего, необходимость в цикле корыта их в JQuery.
Ваш выход JSON будет что-то вроде:

result: [ 
    {'key1': 'asd', 'key2': 'qwe'}, 
    [...] 
    {'key1': 'asd', 'key2': 'qwe'} 
] 

Петля корыта им нравится:

//first, see how it looks: 
console.log(json.result); 
jQuery.each(json.result, function(i, subresult) { 
    console.log(subresult); 
    // you should be able to use: subresult.key1 
}); 
+0

эй спасибо, могли бы вы дать мне пример того, как петли через них в JQuery тогда? благодаря! – randomuser1

+0

Спасибо, я сделал 'if ($ q3-> rowCount()> 0) { \t $ check3 = $ q3-> fetchAll (PDO :: FETCH_ASSOC); \t $ arr = array(); \t foreach ($ check3 as $ row) { \t $ arr [] = $ row; \t} \t \t эхо json_encode ('результат' => $ обр ); } ', но теперь я получаю ошибку' Parse error: синтаксическая ошибка, неожиданная T_DOUBLE_ARROW', и я не уверен, в чем проблема: | – randomuser1

+1

Мой плохой. Это json_encode (array ('result' => $ arr)); Я нахожусь по телефону –

Смежные вопросы