我有这个代码,它在标题之后得到一些奇怪的东西()()()()。我一直在寻找这个,我仍然不知道如何解决它。提前谢谢。
<html>
<head>
<title>VER PRECIOS DE DESTINOS</title>
<style>
table,th,td
{
font-family: Tahoma;
border:1px solid black;
border-collapse:collapse;
}
th,td
{
padding:5px;
}
th
{
text-align:left;
}
</style>
</head>
<body>
<span style="font-family: Tahoma; font-size: 45.0px; font-weight: bold; ">
VER PRECIOS DE DESTINOS
</span>
<table style="width:300px">
<tr>
<th>DESTINO</span</th>
<th>PRECIO</th>
</tr>
<tr><?php
mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("Destinos") or die(mysql_error());
$order = "SELECT * FROM Destinos ORDER BY Destino";
$result = mysql_query($order);
while($data = mysql_fetch_row($result)){
print "(<tr><td>$data[0]</td>)";
print "(<td>$$data[1]</td>)";
}
?>
</table>
</tr>
</body>
</html>
答案 0 :(得分:5)
问题是TABLE / TR / TH 不允许元素之间的混合内容。
因此,最终的HTML可能类似于以下无效:
<tr>(<td>..</td)(<td>..</td)(<td>..</td)</tr>
浏览器最好处理这种情况并在TABLE外部“移动”()()()括号 - 因为它们在TD元素之外。括号可能只是从输出中省略或包含在TD元素内部。
答案 1 :(得分:3)
当在tr/td
标签之外的表格中加入内容时,该内容会显示在您的表格之外。
问题在于这里的问题:
print "(<tr><td>$data[0]</td>)";
print "(<td>$$data[1]</td>)";
可能只是删除它们,你应该很好。
答案 2 :(得分:1)
请尝试以下操作,如果有帮助请告诉我..
<?php
mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("Destinos") or die(mysql_error());
$order = "SELECT * FROM Destinos ORDER BY Destino";
$result = mysql_query($order);
?>
<table style="width:300px">
<tr>
<th>DESTINO</span</th>
<th>PRECIO</th>
</tr>
<? while($data = mysql_fetch_row($result)){ ?>
<tr>
<td> <?=$data[0]?> </td>
<td> <?=$data[1]?> </td>
</tr> <?}?>
</table>
如果您需要围绕值的括号,请尝试以下操作..
<table style="width:300px">
<tr>
<th>DESTINO</span</th>
<th>PRECIO</th>
</tr>
<? while($data = mysql_fetch_row($result)){ ?>
<tr>
<td> (<?=$data[0]?>) </td>
<td> (<?=$data[1]?>) </td>
</tr> <?}?>
</table>
答案 3 :(得分:1)
$data[0]
为'foo',print "(<tr><td>$data[0]</td>)";
将输出(<tr><td>foo</td>
。这不是有效的HTML。</tr>
)的结束标记之后有一个表行(</table>
)的结束标记,它不仅是无效的HTML,而且没有意义。请勿使用print
s / echo
打印整个HTML。 PHP被设计成一个模板创建者(这是一个自己的悲伤事件,不适合答案)。因此,请打印需要动态打印的内容。
<body>
<?php
mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("Destinos") or die(mysql_error());
$order = "SELECT * FROM Destinos ORDER BY Destino";
$result = mysql_query($order);
?>
<span style="font-family: Tahoma; font-size: 45.0px; font-weight: bold; ">
VER PRECIOS DE DESTINOS
</span>
<table style="width:300px">
<tr>
<th>DESTINO</span</th>
<th>PRECIO</th>
</tr>
<?php
while ($data = mysql_fetch_row($result)) {
?>
<tr>
<td><?php echo $data[0]; ?></td>
<td><?php echo $data[1]; ?></td>
</tr>
?php
}
?>
</table>
</body>
现在,很明显您正在尝试在PHP while
循环中创建多个行。同样<td><?php echo $data[0]; ?></td>
可以清楚地解释为:制作一个表格单元格,但它的内容应该是$data[0]
的值。
$
:print "(<td>$$data[1]</td>)";
。答案 4 :(得分:0)
试一试。如果有效,请告诉我。
<html>
<head>
<title>VER PRECIOS DE DESTINOS</title>
<style>
table,th,td
{
font-family: Tahoma;
border:1px solid black;
border-collapse:collapse;
}
th,td
{
padding:5px;
}
th
{
text-align:left;
}
</style>
</head>
<body>
<span style="font-family: Tahoma; font-size: 45.0px; font-weight: bold; ">
VER PRECIOS DE DESTINOS
</span>
<table style="width:300px">
<tr>
<th>DESTINO</th>
<th>PRECIO</th>
</tr>
<tr><?php
mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("Destinos") or die(mysql_error());
$order = "SELECT * FROM Destinos ORDER BY Destino";
$result = mysql_query($order);
while($data = mysql_fetch_row($result)){
?>
<tr><td><?php
echo $data[0]; ?> </td><td><?php
echo $data[1]; ?> </td></tr> <?php
}
?>
</table>
</body>
</html>
答案 5 :(得分:-1)
<table style="width:300px">
<tr>
<th>DESTINO</span</th>
<th>PRECIO</th>
</tr>
<tr><?php
mysql_connect("localhost", "user", "password") or die(mysql_error());
mysql_select_db("Destinos") or die(mysql_error());
$order = "SELECT * FROM Destinos ORDER BY Destino";
$result = mysql_query($order);
//while($data = mysql_fetch_row($result)){
// print "(<tr><td>$data[0]</td>)";
// print "(<td>$$data[1]</td>)";
// }
?>
<td></td>
<td></td>
</tr>
</table>
尝试评论,我怀疑是语义问题