使用php从库中获取行数据

Get rows data from base with php

本文关键字:获取 数据 php 使用      更新时间:2023-09-26

这里我有一个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,所以当我在aktivnosi上有很多相同的userid时,我还需要创建"+data+";对于表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的日期列。我不知道你的专栏叫什么。

考虑使用这样的东西:

"columnDefs": [{
  "targets": 3,
  "createdCell": function(td,data,row,rIndex,cIndex) {
   // actions for every cell generated on the column you specified.
  }
}]

更多信息:

https://datatables.net/reference/option/columns.createdCell