()()()()页面上的标题之后

时间:2014-07-24 03:45:48

标签: php html

我有这个代码,它在标题之后得到一些奇怪的东西()()()()。我一直在寻找这个,我仍然不知道如何解决它。提前谢谢。

<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>

6 个答案:

答案 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>)";

可能只是删除它们,你应该很好。

See this Fiddle

答案 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)

您没有正确的HTML结构

  • 假设$data[0]为'foo',print "(<tr><td>$data[0]</td>)";将输出(<tr><td>foo</td>。这不是有效的HTML。
  • 表(</tr>)的结束标记之后有一个表行(</table>)的结束标记,它不仅是无效的HTML,而且没有意义。

不要将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> 

尝试评论,我怀疑是语义问题