2012-06-08 109 views
1

我用一个简单的循环,看起来像这样内显示的一种形式:一个PHP循环

$query = "SELECT * FROM $username"; 
$result = mysql_query($query) or die(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
     echo $row['id']. " - ". $row['file']; 
     echo "<br />"; 
       echo "<form method="post" action="" style="width: 80px"> 
      <input name="Checkbox1" type="checkbox" /><input name="Submit1" type="submit"    value="submit" /></form>"; 

当我像这样运行它,我得到一个错误的<是意想不到的。我相信我可能会做一些完全错误的事情。有没有其他的方法可以在一个php循环中输出一个表格。

+0

如果你的意思是你得到'解析错误:语法错误:意外的<在...'然后是导致该问题的代码是不是如上图所示。但是,您确实有几个语法错误,因为您没有在双引号字符串中转义字面双引号。 – DaveRandom

回答

7

看到这一行:

echo "<form method="post" action="" style="width: 80px"> 
    ^   ^
    |    End of string 
    Start of string 

逃生引号(\")内与同类型的报价分隔字符串。

1

我不知道这是否是唯一的问题,但你必须逃避你的双引号:

echo "<form method=\"post\" action=\"\" style=\"width: 80px\"> 
     <input name=\"Checkbox1\" type=\"checkbox\" /> 
     <input name=\"Submit1\" type=\"submit\" value=\"submit\" /> 
     </form>"; 

您也可以使用简单的报价来delimite您的字符串:

echo '<form method="post" action="" style="width: 80px"> 
     <input name="Checkbox1" type="checkbox" /> 
     <input name="Submit1" type="submit" value="submit" /> 
     </form>'; 
4

你有引号内的引号。他们应该使用\逃脱。

echo "<form method=\"post\" action=\"\" style=\"width: 80px\">..."; 

您也可以使用单引号:

echo '<form method="post" action="" style="width: 80px">...'; 

单引号和双引号之间的区别在于,单引号不显示变量:

<?php 
$a = 'b'; 
echo '$a'; // output: $a 
echo "$a"; // output: b 
echo $a; // output b 
0

你应该花葶你的双引号或者只为echo语句使用sigle引号。

0

对于双引号语句echo "<div id="pong" >;中没有反斜杠\"的指定字符串,不能使用双引号(")。您有三种选择:

  1. 更改您的第一个和最后"代码中的'
  2. 认沽反斜杠。
  3. 置字符串,如:回声"<form method="."post".">"