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 :: Выборка из 2-ух таблиц. Помогите!

 PHP.SU

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


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

> Описание: Выборка из 2-ух таблиц. Помогите!
freaky
Отправлено: 30 Ноября, 2009 - 20:50:27
Post Id


Новичок


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


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




Я в 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 Аршавин

Должно получиться
Арсенал Лондон
Альмуния
Аршавин
 
 Top
SAD Модератор
Отправлено: 30 Ноября, 2009 - 21:00:07
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




ты привязываешь игроков к клубу? если да, то база корявая
 
 Top
freaky
Отправлено: 30 Ноября, 2009 - 21:10:24
Post Id


Новичок


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


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




Да...а как должно быть?как сделать?
 
 Top
SAD Модератор
Отправлено: 30 Ноября, 2009 - 22:21:22
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




должна быть такая база
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);
 
 Top
Viper
Отправлено: 01 Декабря, 2009 - 08:28:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




CODE (text):
скопировать код в буфер обмена
  1. SELECT a.*, b.*
  2. FROM clubs AS a
  3. LEFT JOIN players AS b ON b.ids = a.id_clubs


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
freaky
Отправлено: 01 Декабря, 2009 - 09:42:18
Post Id


Новичок


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


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




Спасибо, помогло)))! Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB