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
Форумы портала PHP.SU :: Версия для печати :: Вывод данных из нескольких таблиц БД.
Форумы портала PHP.SU » » Вопросы новичков » Вывод данных из нескольких таблиц БД.

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

1. alena_pl - 20 Января, 2012 - 10:09:35 - перейти к сообщению
Добрый день!
Прошу помощи. Нужно вывести информацию по ссылкам из разных таблиц. Таблиц будет около 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, таким образом придётся плодить код, который только лишь отличается названием таблиц.
Может кто знает более оптимальное решение или подскажет литературу по данной теме.

Спасибо Улыбка
2. ladan - 20 Января, 2012 - 10:19:32 - перейти к сообщению
я бы сделал одну таблицу "Кондитерские изделия"

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

если Вы в цикле выводите все, то еще проще.
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.  
3. Zuldek - 20 Января, 2012 - 10:27:11 - перейти к сообщению
4. alena_pl - 27 Января, 2012 - 15:55:05 - перейти к сообщению
Кому интересно, то было найдено решение о создании несколько категорий таблиц. Например, таблица
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 ) );
То есть не придётся создавать скрипты для каждой таблице. Радость

 

Powered by ExBB FM 1.0 RC1