SELECTING在两个表...(SELECTING in two tables…)

2019-10-30 05:31发布

我有我想用看我的报告,我可以输入日期后得到两个表。

这里是我的表:客户 - customer_date,姓氏,名字

提供服务 - room_number,date_in,date_out

这里是我的代码现在:它似乎无法从我的表中获取任何行

<?php 

$conn = mysql_connect("localhost","root","");

mysql_select_db('irm',$conn);

if(isset($_GET['Submit'])){

$customer_date = $_GET['customer_date'];
}

?>
<form method="get">
<table width="252" border="0">
  <tr>
    <td width="98">Choose Date:</td>
    <td width="144"><label>
  <input onclick="ds_sh(this);" name="customer_date" id="customer_date" readonly="readonly" style="cursor: text" />
</label></td>
 </tr>
 <tr>
<td align="right"><input type="submit" value="Submit" /></a></td>
<td></td>
</tr>
</table>
</form>  

<form>
<?php

    $tryshow = "SELECT * FROM customers,services WHERE customer_date = '$customer_date' ";

    $result = @mysql_query($tryshow,$conn)
            or die("cannot view error query"); 

    if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print...";
}
while($row=mysql_fetch_assoc($result)){
?>
<table width="700" border="0">
    <tr>
      <td width="100">Customer Date:</td>
      <td width="100">Last Name</td>
      <td width="100">First Name</td>
      <td width="100">Room Number</td>
      <td width="100">Date In</td>
      <td width="100">Date Out</td>
    </tr>
    <tr>
      <td><?php echo $row["customer_date"]; ?></td>
      <td><?php echo $row['lastname']; ?></td>
      <td><?php echo $row['firstname']; ?></td>
      <td><?php echo $row['room_number']; ?></td>
      <td><?php echo $row['date_in']; ?></td>
      <td><?php echo $row['date_out']; ?></td>
   </tr>
  </table>
<?php }?>
</form>

有了这个,我可以得到谁在这一天会检查任何客户的报告。

我需要一些建议。 希望你能很快回答我。

Answer 1:

您需要涉及与连接两个表。 根据所给出的信息, customers.customer_dateservices.date_in似乎是最有可能的人选。 这假定日期列仅持有一个日期,而不是日期/时间。

还要注意,我没有使用select *在我的查询,你也不应该。 ;-)

SELECT c.customer_date, c.lastname, c.firstname,
       s.room_number, s.date_in, s.date_out
    FROM customers c
        INNER JOIN services s
            ON c.customer_date = s.date_in
    WHERE c.customer_date = '$customer_date' 


Answer 2:

您不会出现有两个表之间的任何公共领域。 你如何存储事实,客户A在B室的日期C 2 做一个SQL连接,被连接的表都具有共同的至少一个字段。

同时,而不是只说die("cannot view error query")这是为了调试的目的完全无用,尝试做die(mysql_error()它会给你的确切原因查询失败。

同样,如果查询不工作,那么你输出用于发现每行一个完整的HTML表格。 你应该有表的页眉和页脚以外的数据抓取循环。



Answer 3:

当你的决策查询数据库,确保您的日期格式为yyyy-mm-dd

Mysql的理解这种格式的日期只有这样,你要比较的日期格式仅此格式。

$customer_date应该是yyyy-mm-dd格式



Answer 4:

顺便说一句,我会改变customer_date更有意义,如“date_in。” (这是当名是可以预见的好事!)你并不需要指定它的客户,因为它是在客户表了。



文章来源: SELECTING in two tables…