#php #mysql #join
#php #mysql #Присоединиться
Вопрос:
<?php
include('includes/config.php');
$topi = $_GET['id']; //id of url
mysql_select_db("ban", $con);
$query = "SELECT * FROM `basic` WHERE id = '$topi' LIMIT 0, 30";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());
$aa = $row['item'];
$cc = $row['moreinfo'];
$dd = $row['contactinfo'];
$ff = $row['id'];
В этом скрипте я получаю информацию из таблицы basic
, но я хочу извлечь данные из другой таблицы с именем users
. Как я могу получить данные из двух таблиц одновременно?
users
таблица состоит из следующих столбцов:
- Адрес электронной почты
- Имя пользователя
- ID
Комментарии:
1. Пожалуйста, опубликуйте структуру вашей
users
таблицы. Какие столбцы в нем есть?2. @michael электронная почта, имя пользователя и идентификатор являются столбцами
3. @Chamara Denipitiya Связан ли
ID
столбец сbasic.id
?4. @Chamara Denipitiya Хорошо, я добавил пример к своему ответу ниже.
5. Отступ в этом коде кажется настолько случайным, я предполагаю, что он, должно быть, скрывает какое-то секретное сообщение.
Ответ №1:
Вам нужно JOIN
использовать для двух таблиц общее значение, называемое внешним ключом. Как только вы опубликуете структуру users
таблицы, как указано в комментариях, я могу предоставить более полный пример.
РЕДАКТИРОВАТЬ: Смотрите пример. Это вызывает явные имена столбцов вместо SELECT *
.
$query = "SELECT
basic.id,
basic.item,
basic.moreinfo,
basic.contactinfo,
users.email,
users.username
FROM basic JOIN users ON basic.id = users.id
WHERE id = '$topi'
LIMIT 0 , 30";
Ответ №2:
Вы бы использовали соединение с другой таблицей.
$query = "SELECT *
FROM basic b
JOIN users u ON b.user_id = u.user_id
WHERE id = '$topi'
LIMIT 0, 30";
Что-то вроде этого, но на основе ваших полей.
Пожалуйста, обратите внимание: предложение ON указывает, по чему вы будете искать совпадение.