我正在使用Twitter Typeahead prefetch来搜索(json)书籍列表。
我需要创建一个对象数组,其中包含本书的title
和publication_date
- 我只是不确定如何!到目前为止,我只能获得这个头衔。
我目前使用的代码有效,但它只返回书名,我不知道为了检索publication_date我还需要更改什么。
也许我需要一个foreach而不是while循环?对我来说很新,并且在我学习的过程中学习。
我目前的代码;
<?php
include(URL. '/lib/conn.php'); // include the db connection
$sql = ("SELECT * FROM publication");
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
$data = array();
while($row = $result->fetch_assoc()){
$data[] = utf8_encode($row['title']);
}
file_put_contents(URL . '/title.json', json_encode($data));
?>
上面的代码成功创建了一个title.json
,并用书名列表填充它。
感谢任何建议或指示。
答案 0 :(得分:1)
while($row = $result->fetch_assoc())
{
$data[] = array('title' => utf8_encode($row['title']),
'date' => $row['publication_date']);
}
应该做的伎俩。
答案 1 :(得分:1)
首先,我只需从数据库中选择您需要的行:
SELECT title, publication_date FROM publication
这将a)限制您发送的数据的带宽,以及b)在获取结果和分配数据结构时让您的生活更轻松。
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
$data = array();
while($row = $result->fetch_assoc()){
$data[] = $row; // just assign each row to the $data array
}
file_put_contents(URL . '/title.json', json_encode($data));
此外,如果您的内容在数据库中进行了utf-8编码,则没有理由在显示之前对其进行编码。