Я пытаюсь извлечь данные из моей базы данных, используя json в php. У меня есть несколько элементов, которые мне нужны, чтобы опубликовать их на странице.
Я хочу «получить» данные из mysql и вернуть его в json_encode. Как это сделать, используя метод SELECT. Некоторые из них использовали методы PDO, а другие использовали mysql_assoc, что меня смущает.
Например,
У меня есть строки: 'id', 'title', 'start', 'backgroundColor' … и т. Д. вместе со значением по умолчанию для всех из них. ($ array [] = "someValue = default")
Я хочу, чтобы он экспортировался так:
array( 'id' => 1, 'title' => "someTitle", 'start' => "2012-04-16", 'backgroundColor' => "blue", 'someValue' = > "default", ... ), .... ));
Если бы кто-нибудь мог помочь мне с этим с лучшими деталями, я был бы потрясающим!
Если вы хотите сделать это с помощью PDO, вот пример:
<?php $dbh = new PDO("mysql:host=localhost;dbname=DBNAME", $username, $password); $sql = "SELECT `id`, `title`, `time`, `start`, `backgroundColor` FROM my_table"; $result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); //To output as-is json data result //header('Content-type: application/json'); //echo json_encode($result); //Or if you need to edit/manipulate the result before output $return = []; foreach ($result as $row) { $return[] = [ 'id' => $row['id'], 'title' => $row['title'], 'start' => $row['start'].' '.$row['time'], 'backgroundColor' => $row['backgroundColor'] ]; } $dbh = null; header('Content-type: application/json'); echo json_encode($return); ?>
Вы не «прибегаете к массиву json».
Вы получаете результаты своей базы данных в массив PHP, а затем преобразуете этот php-массив, ПОСЛЕ ПОЛУЧЕНИЯ ЗАПОЛНЕНИЯ, в строку json.
например
$data = array(); while ($row = mysql_fetch_assoc($results)) { $data[] = $row; } echo json_encode($data);
Вы можете получить результат от mysql, а затем отформатировать его до json
$array = array(); while($row = mysqli_fetch_array($result)) { array_push($array,$row); } $json_array = json_encode($array);
Пожалуйста, проверьте методы SELECT здесь.
В общем, это выглядело бы так
$data = array(); // result variable $i=0 $query = "SELECT id,title,start,backgroundColor FROM my_table"; // query with SELECT $result = mysql_query($query); while($row = mysql_fetch_assoc($result)){ // iterate over results $data['item'][$i]['id'] = $row['id']; // rest similarly ... ... $i++; } header('Content-type: application/json'); // display result JSON format echo json_encode(array( 'success' => true, 'data' => $data // this is your data variable ));