【问题标题】:How can I display my data from SQL database?如何显示来自 SQL 数据库的数据?
【发布时间】:2015-01-22 10:55:45
【问题描述】:

我正在建立这个网站,人们可以在其中将事件添加到日历中。我创建了一个将数据放入数据库的表单,但现在我想知道如何将数据从数据库中取出!由于我刚开始这个项目作为学校作业,我在混合 PHP 和 HTML 方面有点挣扎。我希望我做得对;

<?php
include("template.php");

$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

?>

<body>
<div class="outer">
    <h2> Beheerderspagina </h2>
    <hr>

<?php
$sql = "SELECT name, organisator, begin, end, location, province, price, sort, website, description FROM events";
$result = $conn->query($sql);

if ($result->num_rows > 0); 
    while($row = $result->fetch_assoc());
        echo <<<HTML
            <div class="add">
                <div class="block">
                    <div class="photo">
                        <img src="geen_foto_beschikbaar.jpg" width="250px" height="250px">
                    </div>
                    <div class="text">
                        <div class="links">
                            <p> 
                            Naam:<br>Organisator:<br>Datum:<br>Locatie:<br>Provincie/land:<br>Gemiddelde prijs:<br>Genre:<br>Website:<br>Omschrijving </p>
                        </div>
                        <div class="rechts">        
HTML;
                            echo "<br>".$row["name"]."<br>".$row["organisator"]. "<br>". $row["begin"]. " tot ". $row["end"]. "<br>". $row["location"]. "<br>". $row["province"]. "<br>". $row["price"]. "<br>". $row["sort"]. "<br>". $row["website"]. "<br>". $row["description"]. "<br>";
    echo <<<HTML
                    </div>
                </div>
            </div>
        </div>
HTML;
?>

这是代码,但它不起作用。问题是,它没有显示我的数据。显示单词“tot”,但其余部分为空。 while 如何循环遍历数据并在 div 中按行显示?

【问题讨论】:

  • 听起来您可能有部分页面呈现,因错误而停止。尝试“查看源代码”以查看是否可以看到任何错误。

标签: php html mysql css


【解决方案1】:
while($row = $result->fetch_assoc());

这里不需要;,而是用{} 包装代码。像这样:

   while($row = $result->fetch_assoc()){
        echo <<<HTML
            <div class="add">
                <div class="block">
                    <div class="photo">
                        <img src="geen_foto_beschikbaar.jpg" width="250px" height="250px">
                    </div>
                    <div class="text">
                        <div class="links">
                            <p> 
                            Naam:<br>Organisator:<br>Datum:<br>Locatie:<br>Provincie/land:<br>Gemiddelde prijs:<br>Genre:<br>Website:<br>Omschrijving </p>
                        </div>
                        <div class="rechts">        
HTML;
                            echo "<br>".$row["name"]."<br>".$row["organisator"]. "<br>". $row["begin"]. " tot ". $row["end"]. "<br>". $row["location"]. "<br>". $row["province"]. "<br>". $row["price"]. "<br>". $row["sort"]. "<br>". $row["website"]. "<br>". $row["description"]. "<br>";
    echo <<<HTML
                    </div>
                </div>
            </div>
        </div>
HTML;}

if 语句相同。

【讨论】:

  • 不,mysqli 并不旧且已弃用。不推荐使用 mysql_* 系列(请注意缺少 i)。
  • 哦,好吧,对不起。
  • 但是如果我这样做了,整个页面就不再显示了?
  • 这意味着出了点问题。设置 error_reporting(E_ALL | E_STRICT);
【解决方案2】:

将您的循环更新为关注

<?php
$sql = "SELECT name, organisator, begin, end, location, province, price, sort, website, description FROM events";
$result = $conn->query($sql);

if ($result->num_rows > 0){
    while($row = $result->fetch_assoc()){
?>
            <div class="add">
                <div class="block">
                    <div class="photo">
                        <img src="geen_foto_beschikbaar.jpg" width="250px" height="250px">
                    </div>
                    <div class="text">
                        <div class="links">
                            <p> 
                            Naam:<br>Organisator:<br>Datum:<br>Locatie:<br>Provincie/land:<br>Gemiddelde prijs:<br>Genre:<br>Website:<br>Omschrijving </p>
                        </div>
                        <div class="rechts">        
                            <br><?=$row["name"]?>
                            <br><?=$row["organisator"]?>
                            <br><?=$row["begin"]?> tot <?=$row["end"]?>
                            <br><?=$row["location"]?>
                            <br><?=$row["province"]?>
                            <br><?=$row["price"]?>
                            <br><?=$row["sort"]?>
                            <br><?=$row["website"]?>
                            <br><?=$row["description"]?><br>
                    </div>
                </div>
            </div>
        </div>
<?php
    }
}
?>

【讨论】:

  • 谢谢!到目前为止,您的回答对我来说是最好的。如果我可能会问,当你运行你的页面并显示它是什么意思;试图在第 38 行获取非对象的属性?在我的例子中,第 38 行是你刚刚给我的代码的第二行。
  • 您仍然需要在脚本之上添加 mysql 连接语句。 $conn in $result = $conn-&gt;query($sql); 指的是连接变量
猜你喜欢
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多