如果 $post 存在,PHP 基本回显
Posted
技术标签:
【中文标题】如果 $post 存在,PHP 基本回显【英文标题】:PHP basic echo if $post exist 【发布时间】: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 语句,不管你是否用
包围它。您只会打印出p
、r
、i
等...
请不要使用mysql_query
编写新应用程序。这是一个已弃用的接口,它将在 PHP 的未来版本中删除。 Updating to PDO is not hard 将来会为您省去很多麻烦。
【参考方案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>';
【讨论】:
以上是关于如果 $post 存在,PHP 基本回显的主要内容,如果未能解决你的问题,请参考以下文章