Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mysql查询的结果作为另一个查询的列名_Php_Mysql - Fatal编程技术网

Php 如何使用mysql查询的结果作为另一个查询的列名

Php 如何使用mysql查询的结果作为另一个查询的列名,php,mysql,Php,Mysql,我有以下代码 <?php include("includes\conn.php"); $start = $_POST['start_date']; $end = $_POST['end_date']; $result = mysqli_query($con,"SELECT * FROM data"); while($row = mysqli_fetch_assoc($result)){ $

我有以下代码

    <?php
       include("includes\conn.php"); 
       $start = $_POST['start_date'];
       $end = $_POST['end_date'];  
       $result = mysqli_query($con,"SELECT * FROM data");
       while($row = mysqli_fetch_assoc($result)){
         $time_stamp = $row['time_stamp'];
         $temp_date= substr($time_stamp, 2, 12);
         $date= explode('.', $temp_date);
         $final= $date[2]. '-' .$date[1]. '-' .$date[0];
         $result1 = mysqli_query($con,"SELECT * FROM data WHERE $final BETWEEN $start AND $end");
         while($row2 = mysqli_fetch_assoc($result1)){
          print_r($row2);
         }
      }
  ?>

错误:


注意:第10行C:\xampp\htdocs\Nestle\trend\u test.php中未定义的偏移量:2
注意:第10行C:\xampp\htdocs\Nestle\trend\u test.php中未定义的偏移量:1 警告:mysqli_fetch_assoc()希望参数1是mysqli_result,bool在第12行的C:\xampp\htdocs\Nestle\trend_test.php中给出


需要你的帮助

从时间戳提取日期可能有问题

$final= substr($time_stamp, 0, 10)
那就更好了

如果需要,请在查询中的开始和结束日期项处添加引号


在调用MySQL之前,为$final添加另一个echo,您可以更好地理解并更正自己。

假设这是数据库'09.12.2019 12:54:50'中的日期数据,因此为了获得格式yyyy-mm-dd,因此您的日期格式具有日期和时间,首先是删除时间:

$temp_date= substr('09.12.2019 12:54:50', 0, 10);
在获得日期后,我们将使用yyyy mm dd格式

$date= explode('.', $temp_date);
$final= $date[2]. '-' .$date[1]. '-' .$date[0];
因此,$final的值为2019-12-09[yyyy-mm-dd],您现在可以在下一次查询中使用它

因为数据库中的日期值使用“.”(09.12.2019 12:54:50)而不是 “-”(09-12-2019 12:54:50),我们在其中提出了一个可接近的解决方案


“09.12.2019 12:54:50”“我在时间上有这样的值。\u stampsis您的期末考试将有dd.mm.yyyy,在MySQL中进行比较之前,您需要使用date\u格式(…)。为$final添加另一个echo,您可以更好地理解。您能否给出存储在
data
表中
time\u stamp
列中的数据项的示例。““09.12.2019 12:54:50”我在time stamp中有这样的值。\u stamp只要尝试一下并显示输出:
print($time)在while循环中“09.12.2019 12:54:50”“09.12.2019 12:55:20”“09.12.2019 12:56:20”“09.12.2019 12:56:50”“09.12.2019 12:57:20”“09.12.2019 12:57:50”“09.12.2019 12:58:20”“09.12.2019 12:58:50”“09.12.2019 12:59:20”“09.12.12.2019 13:00:20”""09.12.2019 13:01:50""""09.12.2019 13:02:20""""09.12.2019 13:02:50""""09.12.2019 13:03:20""""09.12.2019 13:03:50""""09.12.2019 13:04:20""""09.12.2019 13:04:50"“换言之,您当前的查询是‘选择1介于2和3之间的所有内容’。这是一个奇怪的请求。注意:第22行C:\xampp\htdocs\Nestle\trend\u test.php中未定义的偏移量:2。当我执行queryPlease粘贴所有源代码以操作解决方案并防止错误时,我就是这样得到这个错误的。你可以在上面编辑并粘贴它,这样我就可以帮助你了。顺便问一下,你知道我编辑了我发布的答案吗?是的,我是,并根据这个更新了我的代码。请查看我上面发布的代码。请在$date变量后打印\r($date),如果是yyyy mm dd@MariaAbdullah,请查看结果