1

Тема: Вывод данных из таблицы БД на сайт

Здравствуйте, у меня такая проблема, в БД phpmyadmin есть таблица, а на сайтесозданном на joomla в материале есть форма, мне надо вывести список наименований из таблицы в выпадающее меню формы, помогите кому не сложно(пожалуйста поподробнее я совсем новичек).

2

Re: Вывод данных из таблицы БД на сайт

Встроить PHP код можно таким образом.

<?php

// Соединение с базой данных.
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}

// Выбор текущей базы данных mydbname.
if (!mysql_select_db("mydbname")) {
    echo "Ошибка выбора базы данных mydbname: " . mysql_error();
    exit;
}

// Запрос на выборку данных из таблицы sometable.
$sql = "SELECT * FROM   sometable";

// Выполнение запроса.
$result = mysql_query($sql);

// Получение результатов запроса.
if (!$result) {
    echo "Ошибка выполнения запроса: " . mysql_error();
    exit;
}

// Проверка на возвращение данных выполненного запроса.
if (mysql_num_rows($result) == 0) {
    echo "Запрос не вернул данных.";
    exit;
}

// Создание списка.
echo '<select name="select_name">';

// Разбор данных. Создание списка из поля field.
while ($row = mysql_fetch_assoc($result)) {
    echo '<option value="' . $row["field"] . '">' . $row["field"] . '</option>';
}

echo '</select>';

// Очищаем результат.
mysql_free_result($result);

// Закрываем соединение с MySQL.
mysql_close($link);

?>

3 (изменено: Artembolt, 2011-07-18 14:27:29)

Re: Вывод данных из таблицы БД на сайт

спасибо Hanut, только я не много не понял: вместо mysql_user, mysql_pass, sometable, mydbname писать точто используется в моем случае?
И еще 1 вопросик, не могли бы вы мне подсказать, как можно сделать поле с календарём в форме, т.е. чтобы человек мог выбрать число месяц год?

4 (изменено: Artembolt, 2011-07-18 14:39:28)

Re: Вывод данных из таблицы БД на сайт

Не получилось список создался, но в поле списка вот такая надпись:

' . $row["field"] . '

а после списка вот такая:

   '; // Очищаем результат. mysql_free_result($result); // Закрываем соединение с MySQL. mysql_close($link); ?>

а не может joomla так код каверкать? правдо я делал все как надо отключил редактор вписал код!!!
Что я нетак сделал, подскажите пожалуйста.
И еще вопрос на будущее, а если не в список выводить а просто на страницу, то какой код будет?

5

Re: Вывод данных из таблицы БД на сайт

Artembolt сказал:

только я не много не понял: вместо mysql_user, mysql_pass, sometable, mydbname писать точто используется в моем случае?

Совершенно верно, пропишите данные для подключения к MySQL.

Artembolt сказал:

И еще 1 вопросик, не могли бы вы мне подсказать, как можно сделать поле с календарём в форме, т.е. чтобы человек мог выбрать число месяц год?

Попробуйте использовать jQuery UI: http://jqueryui.com/demos/datepicker/

Artembolt сказал:

Не получилось список создался, но в поле списка вот такая надпись:

Вместо field напишите название поля из которого необходимо составить выпадающий список.

Artembolt сказал:

а не может joomla так код каверкать?

Не могу ответить на этот вопрос. С Joomla не работал, поэтому вам лучше поискать форум данной CMS, где смогут подсказать точнее.

Artembolt сказал:

И еще вопрос на будущее, а если не в список выводить а просто на страницу, то какой код будет?

Все то же самое, только вместо <select> делайте строки, например внутри <div>.

6

Re: Вывод данных из таблицы БД на сайт

спасибо большое, пожалуйста только не удаляйте тему, я попробую сделать то что вы написли, если не получиться еще вопросиков задам!!!

7 (изменено: Artembolt, 2011-07-18 23:11:36)

Re: Вывод данных из таблицы БД на сайт

Извините, я поменял field на название поля, все равно отображается тоже самое, просто вместо field название поля и все, может где в кавычках ошибка, только почему комментарии показываются после списка поидее недолжны, знак комментирования тоже выводится, меня смущают теги параграфа

<p></p>

может их не надо, т.к все параграфы я сделал на html а теперь между ними этот php код пытаюсь вставить и настроить, вот посмотрите пожалуйста что у меня еще не так:
Логин пользователя root, host - localhost, pass - отсутствует, db - yourway, table - jom_cities(jom-префикс таблиц для джумла), 4 поля в table: city_name, city_code, country_code, parts_code, (country_code, parts_code-из 2 других таблиц связанных с этой по средством кода

SELECT table.pole, table.pole FROM table1, table2 WHERE table1.pole=table2.pole

)
Следуя из этого и вашего кода получается вот что, что у меня здесь не правильно:

<?php

// Соединение с базой данных.
$link = mysql_connect('localhost', 'root');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}

// Выбор текущей базы данных mydbname.
if (!mysql_select_db("yourway")) {
    echo "Ошибка выбора базы данных mydbname: " . mysql_error();
    exit;
}

// Запрос на выборку данных из таблицы sometable.
$sql = "SELECT * FROM   jom_cities";

// Выполнение запроса.
$result = mysql_query($sql);

// Получение результатов запроса.
if (!$result) {
    echo "Ошибка выполнения запроса: " . mysql_error();
    exit;
}

// Проверка на возвращение данных выполненного запроса.
if (mysql_num_rows($result) == 0) {
    echo "Запрос не вернул данных.";
    exit;
}

// Создание списка.
echo '<select name="Выберите город">';

// Разбор данных. Создание списка из поля field.
while ($row = mysql_fetch_assoc($result)) {
    echo '<option value="' . $row["city_name"] . '">' . $row["city_name"] . '</option>';
}

echo '</select>';

// Очищаем результат.
mysql_free_result($result);

// Закрываем соединение с MySQL.
mysql_close($link);

?>

Если ошибка в

select name='Выберите город'

то я пробовал вместо фразы выберите город по английски написать cities тоже самое ничего не меняется!!!

8

Re: Вывод данных из таблицы БД на сайт

Пароль лучше задать в виде пустой строки.
$link = mysql_connect('localhost', 'root', '');

Больше ошибок я не вижу. Попробуйте сделать отдельный файл для этого кода и запустить скрипт не добавляя его внутрь Joomla. Так вы поймете работает он или нет.

9

Re: Вывод данных из таблицы БД на сайт

Спасибо, попробую!!!

10

Re: Вывод данных из таблицы БД на сайт

В отдельном файле таже картина получается, только даже список не создается, а вот что выводится на экран:

; while ($row = mysql_fetch_assoc($result)) { echo ''; } echo ; mysql_free_result($result); mysql_close($link); ?>

Это я комментарии удалил, а так еще 1 коммент вылазил на экран...
Может со знаками какая запара, с кавычками там или скобками или точкой с запятой, я копировал как вы написали знаки вообще не трогал.

11

Re: Вывод данных из таблицы БД на сайт

Ошибок в коде я не вижу. Либо PHP не работает, либо где-то есть ошибка. Покажите созданный отдельный файл и обратите внимание, что он должен иметь расширение .php.

Вот такого быть не должно:
echo ;

12 (изменено: Artembolt, 2011-07-19 13:23:14)

Re: Вывод данных из таблицы БД на сайт

Как показать? Куда скинуть? Я тут на форуме кнопки вложить не вижу?

Hanut сказал:

Либо PHP не работает

PHP работает так как у меня на компьютере стоит локальный сервер denver3

Hanut сказал:

отдельный файл и обратите внимание, что он должен иметь расширение .php

файл index.php, куда его скинуть чтобы показать?
А ничего что он на рабочем столе а не на денверовском диске Z? Хотя я вписывал ради проверки коды всякие, менял цвет фона все равно работает...

13

Re: Вывод данных из таблицы БД на сайт

Artembolt сказал:

А ничего что он на рабочем столе а не на денверовском диске Z?

Файл index.php должен находиться внутри каталога localhost/www, иначе не понятно как вы его запускаете.

Файлы можно выкладывать, например, здесь: http://narod.yandex.ru/

14 (изменено: Artembolt, 2011-07-19 19:23:07)

Re: Вывод данных из таблицы БД на сайт

Ура спасибо вам большое, при перемещении в localhost/www заработало!!! Только осталось разобраться почему на джумле не пашет, Hanut а вы не подскажете еще 1 мелочь, как сделать тоже самле тока не в форму, не на страницу а в пункт меню, т.е. чтобы данные из поля стали пунктом меню. И как можно сделать так чтобы вот этот список не добавлять в разные материалы, а создать один материал с этим списком, просто в разных пунктах меню он отображал нужную информацию. Т.е. пункты меню страны из таблицы, а список из таблицы городов, эти таблицы связаны, мне надо сделать так чтобы при открытии одного пункта, тоесть одной страны открывался список с городами из данной таблицы. Связь таблиц уже создана. Заранее спасибо.
А кстати вот ссылка на index.php: http://narod.ru/disk/19503992001/index.php.html, только наверное уже не надо.

15

Re: Вывод данных из таблицы БД на сайт

Artembolt сказал:

как сделать тоже самле тока не в форму, не на страницу а в пункт меню,

Это зависит от того как выводится меню. Если вы можете создать меню обычным HTML кодом, то и заменить им выпадающий список не должно составить труда.

По отображению меню мне сложно сказать что-то конкретное.

16

Re: Вывод данных из таблицы БД на сайт

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

17

Re: Вывод данных из таблицы БД на сайт

Наверное лучше сделать методом включения (include), но как именно - сказать сложно, потому что я не понимаю что вы делаете.

18 (изменено: Artembolt, 2011-07-20 00:40:52)

Re: Вывод данных из таблицы БД на сайт

Подробнее выглядит так:
У меня есть в БД таблица страны, есть таблица города, таблицы связаны т.е. при запросе всей информации на город выводится вся информация по городу из двух таблиц. Есть форма которая в списке выводит города(только она выводит все города из таблицы городов). Меню состоит из названий стран, на каждой стране выводится данная форма, мне надо сделать так чтобы в списке появлялись именно города из данной страны а не все из таблицы города...

19

Re: Вывод данных из таблицы БД на сайт

Наверное лучше передать в URL параметр, например, country и по нему выбирать города. URL получается таким хвостиком: ?country=Russia
В скрипте этот параметр будет находиться в переменной GET['country'] и по значению данной переменной выбирать города из БД.

20

Re: Вывод данных из таблицы БД на сайт

Спасибо. Конечно ни чего не понял, знаний не хватает в php. Сейчас подумываю php выучить, не подскажете учебник, какой нибудь, на русском языке?

21 (изменено: Artembolt, 2011-07-20 09:37:14)

Re: Вывод данных из таблицы БД на сайт

Hanut тот код php, с выводом в список в joomle так и не работает, а не может это быть от того что сайт находится в папке Z:/home/название_сайта, а не Z:/home/localhost/www/название_сайта?

22

Re: Вывод данных из таблицы БД на сайт

По книгам почитайте здесь "Библиотека веб-разработчика" и в самом низу этой страницы "Дополнительная литература по PHP".

Попробуйте переместить сайт в localhost/www. Я не знаю причины по которой код не работает.

23

Re: Вывод данных из таблицы БД на сайт

Пробовал переместить не работает, такая же картина. Спасибо за книжки.

24

Re: Вывод данных из таблицы БД на сайт

Artembolt сказал:

Пробовал переместить не работает,

Если код не работает будучи встроенным внутрь Joomla, значит его надо как-то иначе прописывать внутрь шаблонов. Здесь вам поможет только человек знакомый с Joomla.

25

Re: Вывод данных из таблицы БД на сайт

Спасибо за все, я просто вообще 1 раз имею дело с php. Попробую узнать у кого нибудь...