数据库中的URL和链接文本


URL and link text from database

我目前仍在学习PHP,所以有些事情我仍然很难解决。我一直在慢慢学习,阅读教程,这对我有所帮助,但我不明白这一点。

我有一个数据库表(在mysql中),比如说,有100个url。有一列名为"url",第二列为"text"。我已经有了有效的分页代码,所以也将使用它。

我想做的是回显URL(它们都在我网站根目录中名为博客的文件夹中),但使用文本作为链接。

例如,我表中的前三行可能是:

url
001.php
002.php
003.php

文本
随机文本
一些随机文本
更多文本

当回显时,链接显示列中的文本,如:

随机文本
一些随机文本
更多文本

并在单击时打开相关url

我猜它需要某种循环来收集所有的URL,并保存我手动添加的链接文本,然后我的分页代码会将它们拆分。

这是我第一次在这里提问,所以如果不够清楚或你需要更多信息,请告诉我。

我在互联网上搜索了很多次,但似乎找不到教程。

假设您使用用户名"root"和密码"root"连接到本地mysql服务器,并将您的url存储在名为url_database的数据库中的表url_table中,则可以执行以下操作:

$connection = mysql_connect("127.0.0.1","root","root"); // Connect to the mysql server
mysql_select_db("url_database"); // Open the desired database
$query = "SELECT url,text FROM url_table"; // Query to select the fields in each row
$result = mysql_query($query); // Run the query and store the result in $result
while($row = mysql_fetch_assoc($result)) // While there are still rows, create an array of each
{
    echo "<a href='".$row['url']."'>".$row['text']."</a>"; // Write an anchor with the url as href, and text as value/content
}
mysql_close($connection); // close the previously opened connection to the database

您需要的是:

  1. 从数据库中获取结果数组。使用类似的东西

    $query="SELECT*FROM urls";$result=mysql_query($query);

  2. 对于结果表中的每一行,显示相应的url。请注意,在结果资源上调用mysql_fetch_array,第一次调用时返回结果表的第一行,第二次调用时则返回第二行。当没有更多行可返回时,函数返回false。

(详见mysql_fetch_array()文档)

While( $row = mysql_fetch_array($result) ){
    echo '<a href='.$row['url'].'>'.$row['text'].'</a>';
    }

下面是一个可以从开始的示例

$con = mysql_connect("host","user","password");
if (!$con) {
   die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT the_url, the_text FROM my_table");
while($row = mysql_fetch_array($result))
{
   echo '<a href="' . $row['the_url'] . '">"' . $row['the_text'] . '</a> <br />';
}
mysql_close($con);

首先,您只想在数据库中为用户当前查看的页面选择相关的行。例如,如果用户正在查看第2页,其中存在条目15-30,我们只想从数据库中提取这些条目。这是一个效率问题。

你想要的代码是这样的:

$link = mysql_connect(/*connection parameters go here*/);
if ($link === false)
  die;
mysql_select_db('my_database');
$result = mysql_query("SELECT text, url FROM my_table LIMIT 15,30");
print "<ul>'n";
while ($row = mysql_fetch_assoc($result)) {
  print "<li><a href='"{$row['url']}'">{$row['text']}</a></li>'n";
}
print "</ul>'n";
mysql_close();

前三行建立到数据库的连接,如果出现错误,则退出脚本。

下一行选择服务器上相应的数据库。

下一个块为第二个页面运行适当的查询。运行查询后,"结果"将存储在$result中。该结果由多行组成,并且mysql_fetch_assoc($result)一次获得一行。然后,它将这些行格式化为适当的链接格式并输出它们。整个链接集被包裹在一个点列表中。

最后,mysql_close()关闭与数据库的连接。

我假设,从您刚开始,您可能正在按程序进行所有这些操作。

首先你想查询数据库并获得你需要的信息。

<?php
$result = mysqli_query($link, "SELECT url, text FROM table_name");
while ($row = mysqli_fetch_array($result)) $hrefs[] = $row;
foreach ($hrefs as $href) {
    echo "<a href='"".$href['url']."'">".$href['text']."</a>";
}
?>

请注意,我在这里没有做任何错误处理。