2012-02-27 6 views
1

В настоящее время я все еще изучаю PHP, поэтому некоторые вещи, с которыми я все еще сталкиваюсь. Я принимал это медленно и читал учебники, которые помогли, но я не могу понять этого.URL и текст ссылки из базы данных

У меня есть таблица базы данных (в mysql), скажем, 100 URL-адресов. Существует столбец с названием «url» и второй текст «text». У меня уже есть код разбивки на страницы, который работает, поэтому также будет использоваться.

Что я хочу сделать, это отобразить URL-адреса (которые находятся в папке с именем blog в корневом каталоге моего сайта), но используйте текст в качестве ссылки.

Так, например, первые три строки в моей таблице может быть:

URL
001.php
002.php
003.php

текст
случайный текст
какой-либо случайный текст
больше текста

когда вторят из ссылки показывает текст из текста столбца, как:

случайного текст
некоторых случайный текст
больше текста

и откроет соответствующий URL при нажатии

Я предполагаю, что для сбора всех URL-адресов понадобится какой-то цикл, и я добавлю текст ссылки вручную, а затем мой код разбивки будет разбит.

Это мой первый вопрос, задающий вопрос здесь, поэтому, если он недостаточно ясен или вам нужна дополнительная информация, дайте мне знать.

Я сделал несколько поисков в Интернете, но не могу найти учебник.

+3

Я не верю, что вы не можете найти учебное пособие по отображению данных из базы данных, в руководстве есть несколько вариантов для начала. –

+2

Я заинтригован, как получить рабочий код страницы (более сложная задача), не зная, как печатать данные. – mrlee

+0

Не спрашивайте ... иногда то, что один человек находит легко, другие нет, но, как я уже сказал выше, у меня есть рабочая разбивка на страницы, в которой я могу отобразить список текста, но я не мог получить URL-адреса в этом текст. Так что я не могу отображать данные из базы данных, как четко указано в моем вопросе, это я не знал, как «связывать», скажем, текст с URL-адресом. – oscar

ответ

1

Предполагая, что вы подключиться к локальному серверу тузд с именем «корень» и пароль «корень», и ваш 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 
+0

Большое спасибо, я работаю! Нужно только внести несколько небольших изменений в код, чтобы заставить его работать с моей разбивкой по страницам, но это не было проблемой. Я догадался, что было простое решение, но на всю жизнь я не мог это обработать Приветствия! – oscar

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

Обратите внимание, что здесь не было обработки ошибок.

Смежные вопросы