如何在我的php文件中引用我的一个MySQL数据库?

时间:2018-06-25 20:47:35

标签: html php mysql database phpmyadmin

我已经有了一些英镑的帮助,可以将我带到目前为止。链接到问题: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?

非常感谢!

2 个答案:

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