Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод данных из нескольких таблиц БД.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
alena_pl
Отправлено: 20 Января, 2012 - 10:09:35
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011  


Помог: 1 раз(а)




Добрый день!
Прошу помощи. Нужно вывести информацию по ссылкам из разных таблиц. Таблиц будет около 20.
Нашла следующее решение:
В данном скрипте я вывожу ссылки.
<?php
include("bd.php");
$result = mysql_query("SELECT * FROM table1", $db);
$data = mysql_fetch_row($result);
echo "<a name=\"id\" href=\"action.php?id=".$data[0]."\" title='Вывести на экран'><p>Шоколад</a>";
$res = mysql_query("SELECT * FROM table2", $db);
$data1 = mysql_fetch_row($res);
echo "<a name=\"id1\" href=\"action.php?id1=".$data1[0]."\" title='Вывести на экран'><p>Конфеты</a>";
?>

Далее сам обработчик, который по id будет выводить инфу из указанных таблиц.
<?php
include("bd.php");
if (isset($_GET['id'])) {

$id = intval($_GET['id']);
$result_articles = mysql_query ( "SELECT * FROM table1");
$row_articles = mysql_fetch_array($result_articles);
do {
echo "<ul><li>".$row_articles['name']."</br>".$row_articles['description']."</li></ul>";
}
while ( $row_articles = mysql_fetch_array( $result_articles ) );
}
if (isset($_GET['id1'])) {

$id1 = intval($_GET['id1']);
$result_articles = mysql_query ( "SELECT * FROM table2");
$row_articles = mysql_fetch_array($result_articles);
do {
echo "<ul><li>".$row_articles['name']."</br>".$row_articles['description']."</li></ul>";
}
while ( $row_articles = mysql_fetch_array( $result_articles ) );
}

?>
Проблема заключается в том, что как я уже говорила, таблиц будет 20, таким образом придётся плодить код, который только лишь отличается названием таблиц.
Может кто знает более оптимальное решение или подскажет литературу по данной теме.

Спасибо Улыбка
 
 Top
ladan
Отправлено: 20 Января, 2012 - 10:19:32
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




я бы сделал одну таблицу "Кондитерские изделия"

и туда вносил и конфеты и шоколад

если Вы в цикле выводите все, то еще проще.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?
  3. $rel = mysql_query("SELECT * FROM кондитерские изделия");
  4. while($rel_row = mysql_fetch_array($rel))
  5. {
  6. echo "<a href='view_select.php?id=".$rel_row['id']."'>".$rel_row['title']."</a>"; /* будут выводится и помодиры и конфеты ввиде ссылок на полное описание*/
  7. }
  8.  
  9. //обработчик
  10.  
  11. $rel = mysql_query("SELECT * FROM кондитерские изделия WHERE id='".$_GET['id']."'");
  12. $rel_row = mysql_fetch_array($rel)
  13.  
  14. echo $rel_row['description'];
  15. ?>
  16.  

(Отредактировано автором: 20 Января, 2012 - 10:20:57)

 
 Top
Zuldek
Отправлено: 20 Января, 2012 - 10:27:11
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




 
 Top
alena_pl
Отправлено: 27 Января, 2012 - 15:55:05
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Дек. 2011  


Помог: 1 раз(а)




Кому интересно, то было найдено решение о создании несколько категорий таблиц. Например, таблица
Table - содержит названия категорий продуктов, к примеру мясные продукты, птица...
Table1 - это продукты категорий таблицы Table, к примеру сосиски, пельмени.....
Table1_1 - это описание продуктов.

Таким образом можно составлять такие запросы как:

$id = $_GET['id'];
$result="SELECT * FROM table".$id;
$result_articles = mysql_query ($result, $db);
$row_articles = mysql_fetch_array($result_articles);

do {
$idd = $row_articles['id'];
$name = $row_articles['name'];
printf ( '<a href = "list2.php?id='.$id.'&idd='.$idd.'">'.$name.'</a><br>');


}
while ( $row_articles = mysql_fetch_array( $result_articles ) );
То есть не придётся создавать скрипты для каждой таблице. Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB