2012-02-27 56 views
1

我目前仍在學習PHP,所以我仍然在努力處理一些事情。 我一直在慢慢閱讀,並閱讀了教程,但我無法弄清楚這一點。來自數據庫的URL和鏈接文本

我有一個數據庫表(在MySQL中),讓我們說,100個網址。有一個名爲「網址」的列和第二列「文本」。我已經有了可用的分頁代碼,所以也會使用它。

我想要做的是回顯網址(這些網址都位於我網站根目錄中的博客文件夾中),但是使用文本作爲鏈接。

因此,例如,前三排在我的表可能是:

網址
001.php
002.php
003.php

文本
隨機文字
部分隨機文本
更多文字

時呼應了鏈接顯示在列文本,如文本:

隨機文本
一些隨機的文字點擊時
更多的文字

,並打開相關鏈接

我猜測它需要某種循環來收集所有的URL並保存我手動添加鏈接文本,然後我的分頁代碼將它們分開。

這是我第一次在這裏問一個問題,所以如果它不夠清楚或者你需要更多信息,請告訴我。

我在互聯網上做過多次搜索,但似乎找不到教程。

+3

我不相信你找不到從數據庫中顯示數據的教程,手動有幾個一開始。 – 2012-02-27 22:55:00

+2

我很好奇如何在不知道如何打印數據的情況下獲得工作分頁代碼(相對比較困難的任務)。 – mrlee 2012-02-27 23:00:54

+0

不要問......有時一個人覺得容易,其他人不容易,但正如我上面說過的,我有一個工作分頁,我可以顯示文本列表,但是我無法獲取那些URL文本。 所以不是我無法顯示數據庫中的數據,正如我的問題所清楚說明的那樣,我不知道如何「鏈接」,我們應該使用URL來說明文本。 – oscar 2012-02-27 23:16:10

回答

1

假設你連接到使用用戶名「根」和密碼「根」本地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 
+0

非常感謝,我努力工作! 只需對代碼進行一些小的更改以使其與分頁工作匹配,但這不成問題。 我猜想有一個簡單的解決方案,但對於我的生活,我無法解決它 乾杯! – oscar 2012-02-27 23:51:29

1

你需要做的是:

  1. 從數據庫中獲取你的結果陣列。使用類似

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

  2. 對於結果表中的每一行,顯示相應的url。請注意,在結果資源上調用mysql_fetch_array時,會在第一次調用時返回結果表的第一行,在第二次調用時返回第二行等等。當沒有更多行返回時,函數返回false。

(更多的是在mysql_fetch_array() documentation

While($row = mysql_fetch_array($result)){ 
    echo '<a href='.$row['url'].'>'.$row['text'].'</a>'; 
    } 
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); 
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()關閉與數據庫的連接。

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

請注意我在這裏沒有做錯誤處理。