如果$ post存在,PHP基本回显

时间:2013-06-14 14:13:47

标签: php html mysql echo

我是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>'" ;    
}

然后我会有空列。

我需要在结果表中只选择选定的列。我该怎么做呢?

3 个答案:

答案 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>';
        }
    }