无法从db获取数据并在css和html中打印它

时间:2011-05-10 21:36:26

标签: php mysql html css

我正在尝试从以下数据库数据中获取数据:

enter image description here

用这个CSS&显示数据。 HTML代码:

    <div class="event">
        <img src="http://dummyimage.com/80x70/f00/fff.png" alt="picture" />  
        <p>Room 2</p>
        <p class="patient-name">Jon Harris</p>
        <p class="event-text">This is a pixel. A flying pixel!</p>
        <p class="event-timestamp">feb 2 2011 - 23:01</p>
    </div>

.event {  
    display:block;  
    background: #ececec;  
    width:380px;  
    padding:10px;  
    margin:10px;  
    overflow:hidden;  
    text-align: left;
}  
.event img {
    display:block;
    float:left;
    margin-right:10px;
}  

.event p {  
    font-weight: bold;
}

.event img + p {
    display:inline;
}

.patient-name {
    display:inline;
    color: #999999;
    font-size: 9px;
    line-height:inherit;
    padding-left: 5px;
}
.event-text{
    color: #999999;
    font-size: 12px;
    padding-left: 5px;
}
.event-timestamp{
    color: #000;
    padding-left: 5px;
    font-size: 9px;
}

这是我的PHP代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>DASHBOARD - Arduino 3</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
    <?php
    $con = mysql_connect("localhost","*****","***");
        if(!con)
        {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db("arduino_db",$con);

        $result = mysql_query("SELECT * FROM events");
        //Start container
        echo " <div id='background_container'> ";

        while($row = mysql_fetch_array($result))
        {
            echo "<div class='event'>";
            echo "<img src='img/ev_img/red.jpg' alt='picture' />";
            echo "<p>" . $row['inneboende'] . "</p>";
            echo "<p class='patient-name'>" . "$row['overvakare']" . "</p>";
            echo "<p class='event-text'>" . "$row['handelse']" . "</p>";
            echo "<p class='event-timestamp'>" . "$row['tid']" . "</p>";
            echo "</div>";
        }

        //end container
        echo "</div>"
        mysql_close($con);

    ?>
</body>
</html>

我得到的只是一个空白页面,我无法理解为什么。

3 个答案:

答案 0 :(得分:1)

你在这里错过了一个分号(我添加了它):

//end container
echo "</div>";

您应该删除这些行上$row数组变量周围的引号,如下所示:

echo "<p class='patient-name'>" . $row['overvakare'] . "</p>";
echo "<p class='event-text'>" . $row['handelse'] . "</p>";
echo "<p class='event-timestamp'>" . $row['tid'] . "</p>";

通过这些更改,它可以正常工作(我对其进行了测试)。

我认为这是你发布实际连接细节的一个好处:)

正如评论中所提到的,您现在应该明确地更改您的密码。


此外,在开发过程中,您应确保启用错误报告,see this answer了解各种方法。

答案 1 :(得分:1)

  1. row['overvakare']$row['handelse']$row['tid']不应用双引号括起来。由于它们是该字符串中唯一的变量,因此只需删除封闭的双引号。
  2. echo "</div>"最后需要;
  3. 脚本在修复这些错误后执行(并显示数据)。

答案 2 :(得分:0)

一些事情:

如果mysql_query失败,则不会输入您的循环

您正在使用mysql_fetch_array但尝试作为关联数组进行访问。你想要mysql_fetch_assoc

从安全角度来看,如果从用户输入获取数据库值,则不应回显出数据库值。这可能导致令人讨厌的事情,如xss注入。确保使用strip_tags和其他过滤功能之类的东西是安全的。