搜索特定的SQL表,然后在此结果中搜索行

时间:2015-04-17 13:34:29

标签: php mysql

我正在尝试填充三个PHP值,它将搜索数据库中的特定表(table_2),该表与其中一列(我已经分配给php)的值相同值$cscomp)来自同一数据库中的单独表(table_1)。

然后,我需要根据与列值中的日期匹配的当前日期调用它找到的所选表中特定行的所有信息。

我已经在以前的sql搜索中从table_1中的值填充了以下php字段,该字段工作正常:$cscomp, $csship

我正在尝试的php如下:

1  <?php
2  $a = "";
3  $b = "";
4  $c = "";
5  $sql = "SELECT table_name FROM information_schema.tables WHERE table_name='$cscomp'";
6  $ship_select = mysqli_query($db_conx, $sql);
7  $date_select = "SELECT * FROM $ship_select WHERE shipdate = CURRDATE() AND csship='$csship' LIMIT=1";
8  while ($row = mysqli_fetch_array($date_select, MYSQLI_ASSOC)) {
9   $a = $row["port"];
10  $b = $row["arrtime"];
11  $c = $row["deptime"];
12  }
13  ?>

我得到的错误是:

  

可捕获的致命错误:类mysqli_result的对象不可能   转换为字符串。

这与上面的第7行有关。我认为它是找到正确的表开始,但后来没有得到我需要的行值。有什么建议?

1 个答案:

答案 0 :(得分:0)

实际上是因为你没有像在第8行那样获取第6行上的查询值而引发错误。无论如何,你试过这样做:

$date_select = "SELECT * 
    FROM $cscomp 
    WHERE shipdate = CURRDATE() 
    AND csship='$csship' 
    LIMIT=1";

我不知道第一个查询的含义是什么。您要求mysql为您提供表名,要求根据表名过滤数据库。