猿问

如何搜索已与另一个表连接的行

当我不尝试使用 store_ID 进行搜索时,我的查询有效。这是我所拥有的。


<?php

$search = $mysqli-> real_escape_string($_GET['store_ID']);

$end = $mysqli-> real_escape_string($_GET['end']);

$start = $mysqli-> real_escape_string($_GET['start']);

$resultSet = $mysqli->query("SELECT * FROM orders

      INNER JOIN customers

      ON orders.store_ID=customers.store_ID

      WHERE order_date between '$start'  and '$end'

      AND PurchaseMethod LIKE 'deferred");


    if($resultSet-> num_rows>0){

      while($rows = $resultSet->fetch_assoc())

      {

            $storename= $rows['store_name'];

            $orderID = $rows['OrderID'];

            $storeID = $rows['store_ID'];

            $orderdate = $rows['order_date'];

            $purchaseMethod = $rows['PurchaseMethod'];

            $price = $rows['TotalPrice'];


            $output .= "<tr><td style='width:14.28%;'>$storename</td>

            <td style='width:14.28%;'>$orderID</td><td style='width:14.28%;'>$storeID</td>

            <td style='width:14.28%;'>$orderdate</td><td style='width:14.28%;'>$purchaseMethod</td>

            <td style='width:14.28%;'>$$price</td></tr>";

          }


        }else{

          echo var_dump($resultSet);

          $output = "No results";

        }

        }

    ?>

    <?php echo $output; ?>

这就是我想要开始工作的内容:


$resultSet = $mysqli->query("SELECT * FROM orders

      INNER JOIN customers

      ON orders.store_ID=customers.store_ID

      WHERE order_date between '$start'  and '$end'

      AND PurchaseMethod LIKE 'deferred' AND store_ID = '$search'");

当我尝试添加AND store_ID = '$search'");它时,它给了我这个错误:


注意:尝试在第 66 行的 customerreportC.php 中获取非对象的属性


森林海
浏览 207回答 1
1回答

蝴蝶不菲

由于 store_id 存在于两个表中,它会给出不明确的错误。尝试这个$resultSet = $mysqli->query("SELECT * FROM orders&nbsp; INNER JOIN customers&nbsp; ON orders.store_ID=customers.store_ID&nbsp; WHERE order_date between '$start'&nbsp; and '$end'&nbsp; AND PurchaseMethod LIKE 'deferred' AND orders.store_ID = '$search'");
随时随地看视频慕课网APP
我要回答