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

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

1. freaky - 30 Ноября, 2009 - 20:50:27 - перейти к сообщению
Я в php только начинаю что-то понимать и не могу разобраться как сделать запрос на выборку из двух таблиц.
Всё состоит из 2-ух страниц. На первой:

<?
$result = mysql_query("SELECT id,name,city,country FROM clubs WHERE status='0'",$db);
$myrow = mysql_fetch_array ($result);

do {

printf ("<table aligh='center'>

<tr>
<td'><a href='view_clubs.php?id=%s'>%s&nbsp;(%s, %s)</td></tr>
</table>",$myrow["id"], $myrow["name"], $myrow["city"], $myrow["country"]);

}

while ($myrow = mysql_fetch_array ($result));



?>

Из первой таблицы clubs сделана выборка и по ид сделана ссылка на следующую страницу. Например по ид=1.
На следующей странице нужно что бы выводилась более расширенная информация из таблицы clubs.

<? if (isset($_GET['id'])) {$id = $_GET['id'];}
$result = mysql_query("SELECT * FROM clubs WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result); ?>

<?php echo $myrow['name']; ?>&nbsp;(<?php echo $myrow['city']; ?>,&nbsp;<?php echo $myrow['country']; ?>)</td><br>
</tr>
<tr>
<td>&nbsp;Стадион: <?php echo $myrow['stadium']; ?></td><br>
</tr>
<tr>
<td>&nbsp;Финансы: <?php echo $myrow['finance']; ?></td><br>
</tr>
<tr>
<td>&nbsp;Менеджер: <?php echo $myrow['manager']; ?></td><br>
</tr>
<tr>
<td>&nbsp;Чемпионат: <?php echo $myrow['division']; ?><br></

Здесь всё правильно.
Но теперь нужно выбрать все данные из таблицы players что бы данные по строке club из таблицы players совпадали cо строкой в name в таблице clubs. И выводилось по ид(табл.club данной страницы).

Нужна как то обьединить эти таблицы и при этом что бы на странице выводись данные из таблицы players только по id страницы.

Делаю сайт о футболе. Это не важно. Но для примера.

таблица clubs
id name city
1 Арсенал Лондон

таблица players
id namepl
1 Альмуния
2 Аршавин

Должно получиться
Арсенал Лондон
Альмуния
Аршавин
2. SAD - 30 Ноября, 2009 - 21:00:07 - перейти к сообщению
ты привязываешь игроков к клубу? если да, то база корявая
3. freaky - 30 Ноября, 2009 - 21:10:24 - перейти к сообщению
Да...а как должно быть?как сделать?
4. SAD - 30 Ноября, 2009 - 22:21:22 - перейти к сообщению
должна быть такая база
CODE (text):
скопировать код в буфер обмена
  1. таблица clubs
  2. id_clubs | name | city
  3. 1 | Арсенал | Лондон  
  4.  
  5. таблица players
  6. id | namepl | id_clubs
  7. 1 | Альмуния | 1
  8. 2 | Аршавин | 1

то есть таблицы будут связаны по id_clubs
сам запрос вроде такой
CODE (text):
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT a.name,a.city,b.namepl FROM clubs a,players b WHERE a.id_clubs='$id' AND b.id_clubs='$id'  AND a.id_clubs=b.id_clubs",$db);
5. Viper - 01 Декабря, 2009 - 08:28:34 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. SELECT a.*, b.*
  2. FROM clubs AS a
  3. LEFT JOIN players AS b ON b.ids = a.id_clubs
6. freaky - 01 Декабря, 2009 - 09:42:18 - перейти к сообщению
Спасибо, помогло)))! Улыбка

 

Powered by ExBB FM 1.0 RC1