根据id查看关系表中的单个行

时间:2016-04-11 13:32:47

标签: php mysql

尝试根据id查看关系表中的各个行,就好像我单击一个按钮,然后我想使用新选项卡在iframe模式中查看此行。它按预期工作也是父表数据,但问题是子表数据,它总是显示一个所有id。在下面我添加了截图我的代码。

在下面的屏幕截图中,当我单击“查看”按钮时,日期列正在按预期工作,问题是来自子表的其他列。

enter image description here

这是通过点击视图按钮

打开的模态屏幕截图

enter image description here

代码:

<?php 

  $id= $_GET['id'];                    
  $qry = mysql_query("select t.*, u.zip AS zip, u.acct_type AS acct_type from transport as t,users as u WHERE t.id=$id ");


  if($qry === FALSE) {

     die(mysql_error()); // TODO: better error handling

   }

     $data = mysql_fetch_array($qry);    

   ?> 


      <tr role="row" class="even">
          <td style="display:none;"><?php echo $data['id'];?></td>    
          <td class="sorting_1">
            <?php
             $datess = $data['create_date'];
             $old_date_timestamp = strtotime($datess);
             echo date('m-d-Y', $old_date_timestamp);
                         ?>                                                                                          </td>                                                                  <td>                                                             <?php                                   
           $acct_type = $data['acct_type'];

            if($acct_type == 0)
             {
              echo "Admin";
             }

             elseif($acct_type == 3)
             {
               echo "User";
             }

             elseif($acct_type == 4)
             {
               echo "Guest User";
             }

             elseif($acct_type == 5)
             {
               echo "Administrator";
             }

             else
              {
                echo "Trial User";
               }    
              ?>

           </td>
           <td><?php echo $data['zip'];?></td>                                     

        </tr>       

用户表是子表

任何人都可以帮我找错误的地方吗?

1 个答案:

答案 0 :(得分:0)

调试代码有助于它更具可读性,尝试使用更好的方法,就像用开关替换if语句一样,因为你知道它的结果:

switch ( $data['acct_type'] )
{
    case 0:
        echo 'Admin';
        break;
    case 3:
        echo 'User';
        break;
    default:
        echo 'Unknown';
        break;
}

此外,mysql在大多数PHP版本中都已弃用 - 除非您正在使用PDO,否则远离任何协议使用 - 这可能是你没有得到预期行为的原因之一。

没有任何错误,您基本上要求我们调试您的程序,如果没有您的数据或表格的表示,这几乎是不可能的。

您可以阅读这些资源以进一步了解可读性和调试代码:

两者都相互联系。

修改:我建议您在查询周围使用一些var_dumps()