这里我有一个 dataRange
循环,但对于本例来说它并不重要,比 dateRange
更重要的是 $i
:
所以我有:
$dateString = '09.03.2014';
$startDate = new DateTime($dateString);
$period = new DateInterval('P1M');
$endDate = clone $startDate;
$endDate->add($period);
$interval = new DateInterval('P1D');
$daterange = new DatePeriod($startDate, $interval ,$endDate);
$i=1;
foreach($daterange as $date){
$temp = array();
// the following line will be used to slice the Pie chart
$temp['ID'] = $i;
$temp['datum'] = $date->format("d/m") . PHP_EOL;
$rs1 = $db->prepare('SELECT naziv FROM aktivnosti WHERE user_id=:idd');
$rs1->bindParam(':idd', $i);
$rs1->execute();
$naz = $rs1->fetchColumn();
if ($naz != false) {
$temp['vrsta'] = $naz;
} else {
$temp['vrsta'] = '';
}
$output['data'][] = $temp;
$i++;
}
$jsonTable = json_encode($output);
如您所见,我有 for 循环,并且通过 $temp['vrsta'] 我想从表 aktivnosti 获取数据。
我在前端也有 JS UI 层,它可以根据数据生成 html:
$('#example').dataTable( {
"ajax": "table1.php",
"columns": [
{ "data": "ID" },
{ "data": "datum" },
{ "data": "naziv" },
{ "data": "vrsta" },
],
"lengthMenu": [ 31 ],
"columnDefs": [ {
"targets": 3,
"data": "download_link",
"render": function ( data, type, full, meta ) {
if (data != '') {
return '<button class="btn btn-success">'+data+'</button>';
}else {
return data;
}
}
} , etc...
现在我的代码只获取第一行数据,所以问题是因为我在表 aktivnosti 上有许多行具有相同的 user_id,所以当我在 aktivnosti 上有许多相同的 user_id 时,我还需要创建 '' +数据+'';对于表 aktivnosti 中的每一行,但我不知道该怎么做?
一些想法?我怎样才能做到这一点?
最佳答案
事情会是这样的......
$startDate = date('Y-m-d',strtotime("2013-01-01")); //put first date here
$endDate = date('Y-m-d',,strtotime("2013-12-31")); //put second date here
$rs1 = $db->prepare('SELECT * FROM aktivnosti WHERE DATE(start_date)>=DATE('.$startDate.') AND DATE(end_date)<=('.$endDate.') GROUP BY user_id');
$rs1->execute();
$naz = $rs1->fetchAll();
$jsonTable = json_encode($naz);
请注意我命名为 start_date 和 end_date 的日期列。我不知道你的专栏叫什么。
关于javascript - 使用php从库中获取行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723818/