Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 28.08.2013, 10:21   #1
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
Сообщение Вывести данные из двух таблиц

Помогите, пожалуйста, вывести данные из двух таблиц при помощи php.

Есть таблица А table1
UID user_name
1 User 1
2 User 2
3 User 3
4 User 4
5 User 5
6 User 6
7 User 7
есть таблица Б table2
UID user_from user_to
1 1 2
2 2 1
3 3 4
4 4 3
5 5 6
6 6 5
7 1 6
В конечном итоге нужно вывести содержимое таблицы Б, но вместо цифр в user_from и user_to подставить имена из таблицы А, которые соответствуют этим цифрам.
Вот начало
PHP код:
<?php
$sdd_db_host 
'localhost'// Ваш адрес, где находится, хостится ваша база данных
$sdd_db_name 'test'// Имя базы данных, с которой вы хотите работать, так как их может быть множество
$sdd_db_user 'root'// Логин доступ к базе данных
$sdd_db_pass 'password'// Пароль доступа к базе данных
@mysql_connect($sdd_db_host$sdd_db_user$sdd_db_pass); // Устанавливаем связь с сервером
@mysql_select_db($sdd_db_name); // Переключаемся на нужную нам базу данных
??? // Получение данных из таблиц с заменой цифр на имена
??? // Выводим данные
?>

Последний раз редактировалось Shouldercannon; 28.08.2013 в 10:45.
Shouldercannon вне форума   Ответить с цитированием
Старый 28.08.2013, 12:42   #2
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,295
Репутация: 1064
По умолчанию

PHP код:
$query "SELECT `t1`.`user_name` AS `user_from`, `t3`.`user_name` AS `user_to` 
            FROM `table2` AS `t2`
            JOIN `table1` AS `t1` ON `t1`.`uid` = `t2`.`user_from`
            JOIN `table1` AS `t3` ON `t3`.`uid` = `t2`.`user_to`"
;
$results mysql_query($query) or die('Query: ' $query '<br/>Error: ' mysql_error());
while(
$row mysql_fetch_assoc($results)){
    echo 
'From ' $row['user_from'] . ' to ' $row['user_to'] . '<br/>';

Вывод:
Код:

From User 1 to User 2
From User 2 to User 1
From User 3 to User 4
From User 4 to User 3
From User 5 to User 6
From User 6 to User 5
From User 1 to User 6

Andkorol вне форума   Ответить с цитированием
Старый 28.08.2013, 18:43   #3
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
По умолчанию

Как быть, если в обеих таблицах справа есть ещё колонки и нужно вывести из таблицы Б все значения с заменой цифр в user_from и user_to на user_name из таблицы А?
Shouldercannon вне форума   Ответить с цитированием
Старый 28.08.2013, 18:51   #4
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,295
Репутация: 1064
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Как быть, если в обеих таблицах справа есть ещё колонки и нужно вывести из таблицы Б все значения с заменой цифр в user_from и user_to на user_name из таблицы А?
Перечислить нужные поля в запросе:
Код:

SELECT `t1`.`user_name` AS `user_from`, `t3`.`user_name` AS `user_to`, `t1`.`column1`, `t1`.`column2`, ..., `t2`.`column1`, `t2`.`column2`

Andkorol вне форума   Ответить с цитированием
Старый 27.10.2013, 09:41   #5
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
По умолчанию

Помогите, пожалуйста объеденить два запроса в один
PHP код:
$query "SELECT `t1`.`user_name` AS `user_from`, `t3`.`user_name` AS `user_to`  
            FROM `table2` AS `t2` 
            JOIN `table1` AS `t1` ON `t1`.`uid` = `t2`.`user_from` 
            JOIN `table1` AS `t3` ON `t3`.`uid` = `t2`.`user_to`"

и
PHP код:
$query '(SELECT * FROM `table2` ORDER BY `UID` DESC LIMIT 40) ORDER BY `UID` ASC;'

Последний раз редактировалось Shouldercannon; 27.10.2013 в 20:44.
Shouldercannon вне форума   Ответить с цитированием
Старый 27.10.2013, 13:08   #6
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,266
Репутация: 912

icq: 303-206-418
skype: ad-soft.info
По умолчанию

Так же, left join
ADSoft вне форума   Ответить с цитированием
Старый 27.10.2013, 16:15   #7
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Так же, left join
Всё равно не соображу. Можете показать как?
P.S. В web-программировании не силён.
Shouldercannon вне форума   Ответить с цитированием
Старый 27.10.2013, 21:14   #8
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,266
Репутация: 912

icq: 303-206-418
skype: ad-soft.info
По умолчанию

а кашку не пожевать? (с)
ADSoft вне форума   Ответить с цитированием
Старый 28.10.2013, 13:53   #9
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
а кашку не пожевать? (с)
Прям так сложно было и надо было стебаться.
PHP код:
$query "SELECT `t1`.`user_name` AS `user_from`, `t3`.`user_name` AS `user_to`  
            FROM `table2` AS `t2` 
            JOIN `table1` AS `t1` ON `t1`.`uid` = `t2`.`user_from` 
            JOIN `table1` AS `t3` ON `t3`.`uid` = `t2`.`user_to`
            ORDER BY `uid` DESC LIMIT 40"

Shouldercannon вне форума   Ответить с цитированием
Старый 28.10.2013, 15:43   #10
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,266
Репутация: 912

icq: 303-206-418
skype: ad-soft.info
По умолчанию

Результат полученный самостоятельно с подсказкой гораздо ценнее готового решения. Так вы хоть подумали....
ADSoft вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные из двух таблиц в одну reihtmonbern БД в Delphi 1 15.01.2013 23:25
Вытянуть данные из двух таблиц nikleb SQL, базы данных 1 03.05.2011 00:56
Отличающиеся данные из двух таблиц Ma4balaka SQL, базы данных 12 09.11.2010 17:58
Связать данные двух таблиц ZhK Microsoft Office Excel 5 03.09.2009 12:23
Помогите связать данные двух таблиц ZhK Microsoft Office Excel 47 27.08.2009 13:22


16:46.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru