2012-02-27 4 views
1

저는 아직도 PHP를 배우기 때문에 아직 고민 중입니다. 나는 천천히 그것을 가져 갔고 도움이되었던 튜토리얼을 읽었다. 그러나 나는 이것을 이해할 수 없다.데이터베이스의 URL 및 링크 텍스트

저는 100 개의 URL을 가지고 데이터베이스 테이블을 가지고 있습니다 (mysql에서). 'url'이라는 열과 'text'라는 두 번째 열이 있습니다. 이미 작동하는 페이지 매김 코드가 있으므로 사용하게 될 것입니다.

내가하고 싶은 일은 내 사이트의 루트에있는 blog라는 폴더에있는 모든 URL을 반향 출력하지만 텍스트를 링크로 사용합니다.

그래서 예를 들어 내 테이블의 처음 세 행이 될 수 있습니다

URL
001.php
002.php
003.php

텍스트
임의 텍스트
일부 임의의 텍스트
more text

밖으로 반향 때 링크는 같은 열 텍스트의 텍스트 보여

임의의 텍스트를
클릭하면
더 많은 텍스트

가 및 관련 URL로 열 몇 가지 임의의 텍스트

모든 URL을 수집하고 수동으로 링크 텍스트를 추가하는 일종의 루프가 필요하다고 생각합니다. 그러면 내 페이지 매김 코드가이를 분리합니다.

여기는 처음 질문을하는 것이므로 충분히 명확하지 않거나 더 많은 정보가 필요하면 알려주십시오.

인터넷에서 여러 번 검색했지만 튜토리얼을 찾을 수 없습니다.

+3

DB에서 데이터를 표시하는 방법에 대한 자습서를 찾을 수 없다고 생각합니다. 설명서에는 몇 가지가 있습니다. –

+2

데이터를 인쇄하는 방법을 알지 못하고 작업하는 페이지 매김 코드 (비교적 어려운 작업)를 얻는 방법에 흥미가 있습니다. – mrlee

+0

가끔은 한 사람이 쉽게 찾을 수있는 것들, 다른 사람들은 쉽게 찾을 수없는 것들을 물어 보지 말고, 위에서 말했듯이 텍스트의 목록을 표시 할 수있는 작업중인 페이지 매김이 있지만 그 URL을 얻을 수는 없습니다. 본문. 그래서 데이터베이스의 데이터를 표시 할 수없는 것은 아닙니다. 내 질문에 명확하게 설명했듯이 URL을 사용하여 텍스트를 "링크하는"방법을 모르겠습니다. – oscar

답변

1

합니다 (mysql_fetch_array() documentation에 그에 대한 자세한 참조), 그리고 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

1

는 당신이 필요로하는 것은하는 것입니다

  1. 데이터베이스로부터 결과 배열을 얻는다.

    $ query = "SELECT * FROM urls"와 같은 것을 사용하십시오. $ result = mysql_query ($ query);

  2. 결과 테이블의 모든 행에 대해 해당 URL을 표시하십시오. 결과 리소스에 대해 mysql_fetch_array를 호출하면 처음 호출 할 때 결과 테이블의 첫 번째 행을 반환하고, 두 번째 때는 두 번째 결과 테이블을 반환합니다. 함수는 반환 할 행이 더 이상 없을 때 false를 반환합니다.

당신은 사용자 이름 "루트"과 암호 "루트"로 로컬 MySQL 서버에 접속 가정

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

여기서는 오류 처리를 수행하지 않았습니다.