gpt4 book ai didi

php - 为 timelinejs 拉取 mysql 数据?

转载 作者:行者123 更新时间:2023-11-29 03:30:40 30 4
gpt4 key购买 nike

我正在尝试从 mysql 数据库中提取数据以创建一个 json 文件以用于 timelinejs 时间线。问题是 json 文件必须以某种方式格式化。我创建了以下正确格式化 json 的代码,但它只从我的数据库中提取一个条目(特别是最后一个条目)。非常感谢你们能提供的任何帮助!

<?php
$link = mysql_pconnect("localhost", "root", "********") or die("Could not connect");
mysql_select_db("php_test") or die("Could not select database");
$rs = mysql_query("SELECT * FROM timelinetest");
while($row = mysql_fetch_array($rs, MYSQL_ASSOC))
$object = array
('timeline'=>
array(
'headline'=>'Georgia History Title Page',
'type'=>'default',
'text'=> 'Testing Overview',
'startDate'=>'1700',
'asset'=>array('media'=>'titlepagemedia', 'credit'=>'titlepagecredit', 'caption'=>'titlepagecaption'),
'date'=>array(array('startDate'=>($row['startDate']), 'endDate'=>($row['endDate']), 'headline'=>($row[ 'headline']), 'text'=>($row['text']), 'tag'=>'', 'asset'=>array('media'=>($row['media']), 'credit'=>($row[ 'credit']), 'caption'=>($row['caption']))), ),
'era'=>array(array('startDate'=>'', 'endDate'=>'', 'headline'=>'', 'text'=>'', 'tag'=>''))
)
);

$json = json_encode($object);
file_put_contents("testing.json", $json);
?>



<head>
<!-- jQuery -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<!-- BEGIN TimelineJS -->
<script type="text/javascript" src="http://cdn.knightlab.com/libs/timeline/latest/js/storyjs-embed.js"></script>
<script>
$(document).ready(function() {
createStoryJS({
type: 'timeline',
width: '800',
height: '600',
source: 'http://localhost/php_test/timeline_test/testing.json',
embed_id: 'my-timeline'
});
});
</script>
<!-- END TimelineJS -->

最佳答案

在您的 while 循环中,您不断将结果向量 $row 的内容分配(=覆盖)到相同的(单数!)对象 $object。不熟悉 TimelineJS 我假设你需要在 $object['timeline'] 中建立一个数组,你可以用它来做

while($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
$object['timeline'][]=array(
'headline'=>'Georgia History Title Page',
'type'=>'default',
'text'=> 'Testing Overview',
'startDate'=>'1700',
'asset'=>array('media'=>'titlepagemedia', 'credit'=>'titlepagecredit', 'caption'=>'titlepagecaption'),
'date'=>array(array(
'startDate'=>($row['startDate']),
'endDate'=>($row['endDate']),
'headline'=>($row['headline']),
'text'=>($row['text']),
'tag'=>'',
'asset'=>array('media'=>($row['media']),
'credit'=>($row['credit']),
'caption'=>($row['caption'])))),
'era'=>array(array('startDate'=>'', 'endDate'=>'', 'headline'=>'', 'text'=>'', 'tag'=>''))
);
}

这与 array_push($object['timeline'], ...) 基本相同,它将每个结果行的数据附加到数组 'timeline '$object 中。

编辑

现在循环将填充 $object['timeline'] 中的数组 dateera(尽管不会有实际数据在时代):

$object=array('timeline'=>array(
'headline'=>'Georgia History Title Page',
'type'=>'default',
'text'=> 'Testing Overview',
'startDate'=>'1700',
'asset'=>array('media'=>'titlepagemedia', 'credit'=>'titlepagecredit', 'caption'=>'titlepagecaption'),
'date'=>array(),'era'=>array()
));

while($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
$object['timeline']['date'][]=array(
'startDate'=>($row['startDate']),
'endDate'=>($row['endDate']),
'headline'=>($row['headline']),
'text'=>($row['text']),
'tag'=>'',
'asset'=>array('media'=>($row['media']),
'credit'=>($row['credit']),
'caption'=>($row['caption'])));
$object['timeline']['era'][]=array('startDate'=>'', 'endDate'=>'', 'headline'=>'', 'text'=>'', 'tag'=>'');

}

也许这有帮助?

关于php - 为 timelinejs 拉取 mysql 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176273/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com