2012-02-27 7 views
1

私はまだPHPを学んでいますので、まだ苦労していることがいくつかあります。 私はそれをゆっくりと取ってきて、チュートリアルを読んで助けてくれましたが、私はこれを理解できません。データベースのURLとリンクテキスト

私は100のURLを使って(mysqlの)データベーステーブルを持っています。 「url」という列と「text」という列があります。私はすでに動作するページネーションコードを持っているので、それも使用します。

私がしたいのは、URL(私のサイトのルートにあるblogという名前のフォルダにあります)をエコーアウトしますが、そのテキストをリンクとして使用します。

だから、例えば私のテーブル内の最初の3行は次のようになります。

URL
001.php
002.php
003.php

テキスト
ランダムテキスト
一部のランダムテキスト
他のテキスト

ランダムなテキスト
いくつかのランダムなテキスト
複数のテキスト

クリックしたときに、関連URLを開きます:

リンクをエコーのような列のテキストからテキストを表示します

私は、すべてのURLを収集して手動でリンクテキストを追加することを救うために何らかのループが必要であると推測しています。そして、私のページコードがそれらを分割します。

これは私が初めてここで質問しているので、十分ではないか、詳細が必要な場合は、私に教えてください。

私はインターネットで複数の検索を行っていますが、チュートリアルを見つけることはできません。あなたが必要なもの

+3

DBからデータを表示するチュートリアルが見つからないとは思いませんが、マニュアルにはいくつかのスタートがあります。 –

+2

データの印刷方法を知らなくても、作業のページ作成コード(比較的困難な作業)の仕上がりに興味があります。 – mrlee

+0

質問しないでください。ある人が簡単に見つけたものや、他の人が見つからないものがありますが、上記のように私はテキストのリストを表示できる作業中のページングがありますが、テキスト。 私は質問に明記されているように、私はdatabseのデータを表示することはできません。URLとテキストを「リンクする」方法はわかりませんでした。 – oscar

答えて

1

あなたが何か行うことができ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

1

された:

  1. データベースから結果の配列を取得します。

    $ query = "SELECT * FROM urls"のようなものを使用してください。 $結果= mysql_query($クエリ);

  2. 結果表の各行について、対応するURLを表示します。結果リソースでmysql_fetch_arrayを呼び出すと、最初に呼び出されたときに結果テーブルの最初の行が返され、2回目には2番目に返されることに注意してください。返す行がなくなると、この関数はfalseを返します。ユーザー名は「root」とパスワード「ルート」でローカルのMySQLサーバに接続し、あなたのURLが表に格納されていと仮定

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

最初の3行は、データベースへの接続を確立し、エラーが発生した場合、スクリプトを終了:

あなたは後にしているコードは、このようなものです。

次の行は、サーバー上の適切なデータベースを選択します。

次のブロックは、2番目のページに対して適切なクエリを実行します。クエリが実行された後、 'result'は$resultに格納されます。この結果は複数の行で構成され、mysql_fetch_assoc($result)はこれらの行を1つずつ取得します。次に、これらの行を適切なリンク形式にフォーマットして出力します。リンクのセット全体がドットポイントリストにラップされます。

最後に、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>"; 
} 
?> 

ここではエラー処理を行っていません。

関連する問題