生成时,php echo中的html元素不存在

时间:2013-06-16 07:23:56

标签: php html tags echo

我在设置数据库查询结果时遇到了一些麻烦,因为出于某种原因,当我在线查看页面时,我正在回应的HTML元素被完全剥离。标签(和等)没有被注释,只是在查看页面源时完全消失了。

这个脚本的想法是让它获得玩家的投票结果。使用当前脚本,数据全部显示,因此没有连接问题。这是我目前的php:

<?php

$user_name = "TAKEN OUT";
$password = "TAKEN OUT";
$database = "TAKEN OUT";
$server = "TAKEN OUT";
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);

if ($db_found) {

$SQL = "SELECT * FROM votesql ORDER BY votes DESC";
$result = mysql_query($SQL);
$value = 1;
while ($db_field = mysql_fetch_assoc($result)) {
echo "<tr id=\"voterank\">" . $value . "</div>";
echo "<td id=\"vote-place\">" . $value . "</td>";
echo "<td id=\"vote-playername\">" . $db_field['playername'] . "</td>";
echo "<td id=\"vote-count\">" . $db_field['votes'] . "</td>";

$value = $value + 1;

echo ("</tr>");
}

mysql_close($db_handle);

}
else {
print ("Database NOT Found ");
mysql_close($db_handle);
}

?>

这会导致页面显示与此非常相似的信息:

11Playerone1222Playertwo11261

当我查看页面的来源时,它显示为一个没有元素的简单文本块。在过去的3个小时里我一直坚持这一点(甚至没有夸大其词)试图找到我能如何回应这一点,但没有运气。我还在两个不同的托管环境中测试了这个,一个在我的机器上通过EasyPHP,另一个在我拥有的网站上。

任何帮助解决这个问题都将非常感谢!

4 个答案:

答案 0 :(得分:1)

echo "<tr id=\"voterank\">" . $value . "</div>";

你需要一个TD,而</div>是错误的。

此外,您正在重复每行<td>中的ID。 ID应该在页面上是唯一的。也许你在这里使用class="..."

答案 1 :(得分:1)

td需要完整的表格结构:

<table>
 <tr>
  <td>Column 1 </td>
  <td>Column 2 </td>
 <tr>
</table>

可能是浏览器正在删除您案例中的<td>元素,因为它们在没有周围<table>的情况下无效。

此外,正如Mike W points out一样,您使用<tr>关闭了</div>,而此时您不应该关闭任何内容。

但是,您应该在真实的“查看源代码”视图中看到原始HTML。

答案 2 :(得分:0)

改变这个:

echo "<tr id=\"voterank\">" . $value . "</div>";
echo "<td id=\"vote-place\">" . $value . "</td>";
echo "<td id=\"vote-playername\">" . $db_field['playername'] . "</td>";
echo "<td id=\"vote-count\">" . $db_field['votes'] . "</td>";

为:

echo "<tr>";
echo "<td id=\"voterank\">" . $value . "</td>";
echo "<td id=\"vote-place\">" . $value . "</td>";
echo "<td id=\"vote-playername\">" . $db_field['playername'] . "</td>";
echo "<td id=\"vote-count\">" . $db_field['votes'] . "</td>";
echo "</tr>";

答案 3 :(得分:0)

有点简单:

echo '<tr>
<td id="voterank">'.$value'.</td>
<td id="vote-place">'.$value.'</td>
<td id="vote-playername">'.$db_field['playername'].'</td>;
<td id="vote-count">'.$db_field['votes'].'</td>
</tr>';

如果您使用单引号开始回显,则在双引号之前不需要使用(/)。祝你好运。