我已经有了一些英镑的帮助,可以将我带到目前为止。链接到问题:Using mySql database data directly into generating articles for my website? (newbie, needs to know where to start))
至此,我开始对代码语法和项目结构有了更好的了解。
但是我已经使用mySQL控制台创建了数据库。到目前为止,它只有几个条目,我想尝试修改Zach示例中的代码,但这是我遇到的问题。...
问题是:我不确定如何获取对数据库对象的引用?在Zach的代码示例中,有一个$ db变量,我想这是我需要保留对自己的实际数据库的引用的地方。
这里是Zach的“伪代码”(也许),注意:他总是对我说不要复制粘贴它,而只是想看看如何在我的项目中使用它。
<?php
$SQL_Query = "SELECT * FROM your_table";
$SQL_Run = mysqli_query($db, $SQL_Query);
while ($row = mysqli_fetch_assoc($SQL_Run)) {
echo
"<section class='wrapper style1'>
<div class='inner'>
<header class='align-center'>
<h2>" . $row['imageurl'] . "</h2>
<img src='" . $row['title'] . "'>
<p>" . $row['description'] . "</p>
</header>
</div>
</section>";
}
?>
所以现在的问题是:如何创建引用$ db?
非常感谢!
答案 0 :(得分:2)
您的答案是建立连接的正确方法。我想指出,有两种编写该语句的方法。您在网上找到的版本是一种方法,但是在我们之前的对话中,您可以这样写:
<?php
// Establish how to log in
$servername = "127.0.0.1";
$username = "root";
$password = "yourpasswordhere";
$dbname = "yourdatabasenamehere";
// create the database connection
$db = new mysqli($servername, $username, $password, $dbname);
// if it fails, kill the site.
if (mysqli_connect_error($db)) {
die("Connection failed: " . mysqli_connect_error($db));
}
// your first query to grab all the article data
$SQL_Query = "SELECT * FROM your_table";
// run the query
$SQL_Run = mysqli_query($db, $SQL_Query);
// while data exists (it makes sure that you have post data, otherwise nothing shows up)
while ($row = mysqli_fetch_assoc($SQL_Run)) {
echo
"<section class='wrapper style1'>
<div class='inner'>
<header class='align-center'>
<h2>" . $row['imageurl'] . "</h2>
<img src='" . $row['title'] . "'>
<p>" . $row['description'] . "</p>
</header>
</div>
</section>";
}
// Close the connection
mysqli_close($db);
?>
您会注意到连接的编写就像一个函数。
mysqli_num_rows($result);
代替
$result->num_rows
两者都做同样的事情,只是个人喜好。希望应该可以从您的第一篇文章中清除一些东西:)
答案 1 :(得分:1)
好的,我进一步讲了,我认为已经回答了我自己的问题。我发现Google有点棘手,因为我不了解features / api / scripts / etc的所有不同术语和名称。但是我只需要阅读mysqli_connect()的文档,就可以按如下所示设置代码,现在我已将数据库中的所有数据提取到html / php文件中的单词中。
我认为从这里开始,我可以重写代码以按日期对它进行排序,然后当然可以将最新的帖子放在每页的顶部,等等。
我还可以允许用户单击“流派”,例如仅查看喜剧。
这里是仅用于将数据解析到我的index.php文件中的代码。希望它能对其他人有所帮助:
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "yourpasswordhere";
$dbname = "yourdatabasenamehere";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, type, title FROM releases";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Type: " . $row["type"]. " - Title " . $row["title"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
我通过使php脚本读取数据库中的所有条目并创建我以前为每个条目编写的html文章,扩展了上述工作。在SELECT语句中,我可以控制显示哪些类型的条目(例如,对于特定类别)。这是我的方法:
// make an html article based snippet (image, title, description, etc),
//once for each entry in the database table...
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "somepassword";
$dbname = "somedatabasename";
// create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// check connection
if ($conn->connect_error) {
die("connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM releases ORDER BY id DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
echo '<section class="wrapper style1">';
echo '<div class="inner">';
echo '<header class="align-center">';
echo '<h2>'. $row["title"] . '</h2>';
echo '<div class="image fit">';
echo '<img src='. $row["imgurl"] .'>';
echo '</div> <p> RELEASE TITLE: ' . $row["title"] . '<br /> DATE POSTED: ' . $row["postdate"] . '<br /> DESCRIPTION: ' . $row["description"] . '</p>';
echo '<a href="'.$row["link"].'">DOWNLOAD LINK: '.$row["link"].'</a> <br />';
$NfoLink = $row["nfolink"];
if ($NfoLink != 'not found' && $NfoLink != '')
{
echo '<a href="'.$row["nfolink"].'">NFO LINK/MORE DOWNLOADS: '.$row["nfolink"].'</a>';
}
echo '</header>';
echo '</div>';
echo '</section>';
}
}
else
{
echo "0 results";
}
$conn->close();
?>