我是PHP的新手,我使用php来mysql查询一些数据供内部使用,虽然是一个复选框表单,使用带有$ POST的HTML复选框 我的变量将是datetime,varchar,integer之类的东西。例如,用户可以检查列'日期','user_id','用户名','收入'
用户可以选择列名,我需要将输出抛出到html表中
用户可以选择一个或所有列名,因此生成的回声必须能够适应。
如果未选中该复选框,我可以在mysql查询中使用isset($ _ POST ['email_address'])来选择列而不会出现问题,但现在确定如何生成没有重复html标记的echo。
我会用
while ($row = mysql_fetch_assoc($sqlResult)) {
echo "'<td>'{isset($_POST['email_address'])}'</td><td>'{isset($_POST['username'])}'</td>'" ;
}
然后我会有空列。
我需要在结果表中只选择选定的列。我该怎么做呢?
答案 0 :(得分:2)
只需将标记移动到if()
语句中:
if(isset($_POST['email_address']))
{
echo "<td>$_POST['email_address']</td>";
}
if(//...)
{
//...
}
//...
答案 1 :(得分:2)
PHP不会仅仅为简单变量插入表达式,您必须连接输出。
你可能会追求的是
while ($row = mysql_fetch_assoc($sqlResult)) {
echo "<td>".(isset($_POST['email_address'])?$_POST["email_address"]:"No Email")."</td>".
"<td>".(isset($_POST['username'])?$_POST["username"]:"No Username")."</td>" ;
}
或者修改字段,你可以计算出你可能缺少的字段,并使用str_repeat
$numFields = (isset($_POST['email_address'])?1:0) +
(isset($_POST['email_address'])?1:0);
echo str_repeat("<td></td>", $numFields);
答案 2 :(得分:1)
这样,只有在设置了帖子变量后,才会显示列格。
while ($row = mysql_fetch_assoc($sqlResult)) {
if (isset($_POST['email_address'])) {
echo '<td>'.$_POST['email_address'].'</td>';
}
if (isset($_POST['username'])) {
echo '<td>'.$_POST['username'].'</td>';
}
}