【问题标题】:PHP basic echo if $post exist如果 $post 存在,PHP 基本回显
【发布时间】:2013-06-14 14:13:47
【问题描述】:

我是 PHP 新手,我正在使用 php 到 mysql 通过复选框表单查询一些数据以供内部使用,使用带有 $POST 的 HTML 复选框 我的变量将是 datetime、varchar、integer 之类的东西。例如,用户可以检查列 'date'、'user_id'、'username'、'revenue'

用户可以选择列名,我需要将输出放入 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>'" ;    
}

但是我会有空列。

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

【问题讨论】:

  • 您不能在字符串中运行 php 代码。例如echo "print('x')" 不会执行 print 语句,不管你是否用 {} 包围它。您只会打印出pri 等...
  • 请不要使用mysql_query 编写新应用程序。这是一个已弃用的接口,它将在 PHP 的未来版本中删除。 Updating to PDO is not hard 将来会为您省去很多麻烦。

标签: php html mysql echo


【解决方案1】:

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

if(isset($_POST['email_address']))
{
    echo "<td>$_POST['email_address']</td>";
}
if(//...)
{
    //...
}
//...

【讨论】:

  • 正是我正在寻找的形式只是不知道如何写它
【解决方案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);

【讨论】:

  • 他不需要空列 m8
  • 我需要 if( 解决方案,而不是空白/静态值列
【解决方案3】:

这样,您的列单元格只有在您的帖子变量已设置时才会出现。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多