Как построить массив JSON из базы данных mysql

Ладно, я изо всех сил пытался создать массив JSON из mysql. Массив ДОЛЖЕН быть в следующем формате. Я использую fullcalendar и хочу, чтобы события в динамике календаря. Ниже приведен код, который строит массив, но в настоящее время он не получает информацию от mysql

$year = date('Y'); $month = date('m'); echo json_encode(array( //Each array below must be pulled from database //1st record array( 'id' => 111, 'title' => "Event1", 'start' => "$year-$month-10", 'url' => "http://yahoo.com/" ), //2nd record array( 'id' => 222, 'title' => "Event2", 'start' => "$year-$month-20", 'end' => "$year-$month-22", 'url' => "http://yahoo.com/" ) )); 

Solutions Collecting From Web of "Как построить массив JSON из базы данных mysql"

Что-то вроде этого, что вы хотите сделать?

 $return_arr = array(); $fetch = mysql_query("SELECT * FROM table"); while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) { $row_array['id'] = $row['id']; $row_array['col1'] = $row['col1']; $row_array['col2'] = $row['col2']; array_push($return_arr,$row_array); } echo json_encode($return_arr); 

Он возвращает строку json в этом формате:

 [{"id":"1","col1":"col1_value","col2":"col2_value"},{"id":"2","col1":"col1_value","col2":"col2_value"}] 

ИЛИ что-то вроде этого:

 $year = date('Y'); $month = date('m'); $json_array = array( //Each array below must be pulled from database //1st record array( 'id' => 111, 'title' => "Event1", 'start' => "$year-$month-10", 'url' => "http://yahoo.com/" ), //2nd record array( 'id' => 222, 'title' => "Event2", 'start' => "$year-$month-20", 'end' => "$year-$month-22", 'url' => "http://yahoo.com/" ) ); echo json_encode($json_array); 

Решение PDO, только для лучшей реализации, затем mysql_* :

 $array = $pdo->query("SELECT id, title, '$year-month-10' as start,url FROM table")->fetchAll(PDO::FETCH_ASSOC); echo json_encode($array); 

Хорошей особенностью является также то, что она оставит целые числа целыми числами, а не строками.

Просто обновление для пользователей Mysqli:

 $base= mysqli_connect($dbhost, $dbuser, $dbpass, $dbbase); if (mysqli_connect_errno()) die('Could not connect: ' . mysql_error()); $return_arr = array(); if ($result = mysqli_query( $base, $sql )){ while ($row = mysqli_fetch_assoc($result)) { $row_array['id'] = $row['id']; $row_array['col1'] = $row['col1']; $row_array['col2'] = $row['col2']; array_push($return_arr,$row_array); } } mysqli_close($base); echo json_encode($return_arr); 

Использовать это

 $array = array(); $subArray=array(); $sql_results = mysql_query('SELECT * FROM `location`'); while($row = mysql_fetch_array($sql_results)) { $subArray[location_id]=$row['location']; //location_id is key and $row['location'] is value which come fron database. $subArray[x]=$row['x']; $subArray[y]=$row['y']; $array[] = $subArray ; } echo'{"ProductsData":'.json_encode($array).'}';