2013-10-10 3 views
1

Новое на php, но многому обучается. Относительно простой вопрос, который, я считаю, использует команду JOIN. В моем коде ...PHP/MYSQL Echo с использованием команды объединения

Это получает и выводит текущий сеанс пользователя:

$userId = $_SESSION['user_id']; 
echo $userId; 

Но user_id просто номер в моей таблице членов, так что будет печатать «3» или некоторые такие. В той же таблице элементов есть столбец с именем «имя пользователя», где 3 (столбец идентификатора) связан с «Brad» (столбец имени пользователя).

Какова будет команда эха, чтобы получить его для печати Brad? Я пробовал что-то вроде

$actualname = mysqli_query($con,"SELECT members.username JOIN members on userid=members.id"); 

echo $actualname; 

У меня нет отличного смысла, как команда соединения еще работает, любая помощь будет замечательной!

+0

вам не хватает ЕК в выписке запроса. Можете ли вы обновить свой вопрос с именем и структурами ваших таблиц? – Maximus2012

ответ

4

Вы пропускаете FROM:

$result = mysqli_query($con,"SELECT members.username FROM members WHERE userid= $userId"); 

Нет необходимости в JOIN здесь.

Теперь, чтобы отобразить имя:

while ($row = mysqli_fetch_assoc($result)) { 
    echo $row['username']; 
} 

/* free result set */ 
mysqli_free_result($result); 
+0

Работает отлично! Огромное спасибо. Я сбивал с толку необходимость присоединиться к чему-то еще, что я пытался сделать некоторое время назад. Очень признателен! – sylcat

+1

@slycat см. Мой ответ ниже, чтобы узнать больше о том, что такое объединения и как они работают, поэтому в следующий раз не будет путаницы. – amaster

3

Вам не нужен JOIN, так как данные доступны в одной и той же записи и таблице реляционных строк.

Вы должны

SELECT `username` FROM `members` WHERE `userid` = 3 

Предполагая USERID Брэда является 3.

1

Ваша проблема, как уже говорилось не JOIN но нелегальный формируется SELECT синтаксис.

У меня нет большого смысла для того, как команда соединения функционирует, любая помощь будет замечательной!

Для начала используется manual link для синтаксиса MySQL SELECT, который также показывает, как использовать JOIN.

Оператор JOIN будет использоваться только в том случае, если вам нужно было JOIN две или более таблицы вместе на основе коррелирующих данных. Например. Если у вас была другая таблица с именами адресов, и у нее был столбец, относящийся к членам user_id, вы могли бы JOIN таблицы вместе, чтобы получить все адреса для каждого пользователя. Пример код JOIN:

SELECT 
    members.*, 
    addresses.* 
FROM 
    members 
    JOIN addresses ON 
    members.user_id=addresses.members_user_id 
WHERE 
    user_id='3' 

Дополнительных примеры и увидеть, как различные JOINS, такие как левые, правый, внутренняя, внешняя работа увидеть эту article explaing sql joins

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