0

我是 PHP 新手,我正在使用 php 到 mysql 通过复选框表单查询一些内部使用的数据,使用带有 $POST 的 HTML 复选框,我的变量将是 datetime、varchar、integer 之类的东西。例如,用户可以检查列“日期”、“用户 ID”、“用户名”、“收入”

用户可以选择列名,我需要将输出放入 html 表中

用户可以选择一个或所有列名,因此生成的回显必须能够适应。

如果未选中复选框,我可以在 mysql 查询中使用 isset($_POST['email_address']) 来选择列而不会出现问题,但现在确定如何生成没有重复 html 标记的回显。

我会用

while ($row = mysql_fetch_assoc($sqlResult)) {
    echo "'<td>'{isset($_POST['email_address'])}'</td><td>'{isset($_POST['username'])}'</td>'" ;    
}

但后来我会有空列。

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

4

3 回答 3

2

只需将标签移动到if()语句中:

if(isset($_POST['email_address']))
{
    echo "<td>$_POST['email_address']</td>";
}
if(//...)
{
    //...
}
//...
于 2013-06-14T14:18:45.150 回答
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);
于 2013-06-14T14:20:12.807 回答
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>';
        }
    }
于 2013-06-14T14:17:44.970 回答