来自数据库的URL和链接文本

时间:2012-02-27 22:46:33

标签: php mysql database

我目前仍在学习PHP,所以我还在努力解决一些问题。 我一直在慢慢地阅读并阅读有帮助的教程,但我无法理解这一点。

我有一个数据库表(在mysql中),比方说,100个网址。有一个名为'url'的列和第二列'text'。我已经有了可行的分页代码,因此也将使用它。

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

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

网址
001.php
002.php
003.php

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

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

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

并在点击时打开相关网址

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

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

我在互联网上进行了多次搜索,但似乎无法找到教程。

5 个答案:

答案 0 :(得分:1)

您需要的是:

  1. 从数据库中获取结果数组。使用像

    这样的东西

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

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

  3. (请参阅mysql_fetch_array() documentation

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

答案 1 :(得分:1)

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

$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

答案 2 :(得分:0)

以下是您可以开始的示例:

$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);

答案 3 :(得分:0)

首先,您只想为数据库中的相关行选择用户当前正在查看的页面。例如,如果用户正在查看第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()关闭与数据库的连接。

答案 4 :(得分:0)

我假设你刚刚开始,你可能在程序上做了所有这些。

首先,您要查询数据库并获取所需的信息。

<?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>";
}
?>

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