2015-07-13 3 views
0

У меня есть две простые таблицы T1 и T2 как данные, поступающие при загрузке. Я хочу показать file_name под конкретным user_id.Как отображать данные в двух таблицах php

T1 
------------------------- 
ID user_id admin_id 
1  5  11 
2  6  11 
3  5  11 


T2 
-------------------------- 
ID user_id file_name 
1  5  orange 
2  6  apple 
3  5  banana 

Моя проблема заключается в том, что он будет отображать дважды эхо, как показано ниже, а не только один раз. Каков наилучший способ сделать это? Нужно ли использовать внутреннее соединение? Или можно использовать только 2 для каждого цикла. Извините за вопрос noob.

оранжевый банан

оранжевый банан

Вот мой пример:

$test1 = select user_id,admin_id FROM T1; 

for($test1 as $key => $value) 
{ 
    $test2 = select user_id,file_type FROM T2; 

    foreach($test2 as $key => value2) 
    { 
    if(test1->user_id==test2->user_id) 
    { 
     $test2 = select user_id,file_name FROM T2; 
     echo $test2->file_name.'<br>'; 
    } 
    } 

} 
+0

Вы говорите о запросах sql, но вы, похоже, не выполняете никаких sql в своих примерах. Вопрос помечен как «PHP», но ваш пример кода недействителен PHP. Можете ли вы быть более ясными и решить эти проблемы? –

+0

да, для этого вам нужны объединения. Неправильная практика использования запроса в цикле. вы исчерпываете свой сервер –

ответ

1

Во-первых, вы полностью пропустили синтаксис PHP в вашем образце (речь о строках запроса), во-вторых на ваш сервер mysql (или любой другой sql) нет никакого запроса.

Для вашей команды SQL вы должны прочитать о команде JOIN, которая существует в SQL http://www.w3schools.com/sql/sql_join.asp Вот хороший сайт, чтобы начать с ним. Его подробный и дает хорошие примеры

Для вашего вопроса о внутреннем соединении: вам не нужно левое соединение (исправьте меня, если я ошибаюсь) и присоединяюсь к user_id. Я не буду использовать 2 цикла запросов +, потому что соединение является самым медленным в транзакции всей базы данных. Сама команда будет сделана примерно в какое-то время

Смежные вопросы