尝试根据id查看关系表中的各个行,就好像我单击一个按钮,然后我想使用新选项卡在iframe模式中查看此行。它按预期工作也是父表数据,但问题是子表数据,它总是显示一个所有id。在下面我添加了截图我的代码。
在下面的屏幕截图中,当我单击“查看”按钮时,日期列正在按预期工作,问题是来自子表的其他列。
这是通过点击视图按钮
打开的模态屏幕截图代码:
<?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>
用户表是子表
任何人都可以帮我找错误的地方吗?
答案 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()
。