2013-03-04 5 views
0

Мне нужно запросить базу данных с помощью php-запроса.PHP SQL Query 2 Tables

Мне нужно получить идентификатор, который соответствует $ somevalue и таблице с идентификатором ID 2, чтобы я мог получить значение поля, содержащееся в этой строке, где найден идентификатор.

$somevalue = '123'; 


Select id from table1 where $somevalue = id 

...so we have the ID ... now we query table 2 

select id, field2 from table2 where id = $id 

echo $id; 
echo $field2 

Как это сделать в php-запросе?

+3

PHP не имеет запросов. SQL делает. –

+0

Я думаю, вы ищете ['join'] (https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDQQFjAA&url=http%3A%2F % 2Fdev.mysql.com% 2Fdoc% 2Frefman% 2F5.0% 2Fen% 2Fjoin.html & е = XaY0Uev6CMX2sgae8oHABA & USG = AFQjCNGXZQycUZ9UHnvO4i2-l6UslF5wRA & Sig2 = 2GIxQIwfdDigTjxvYdWilA & BVM = bv.43148975, d.Yms). – Leri

+0

Почему вы хотите получить «id» из таблицы1, когда вы уже сравниваете $ somevalue с id – Sebastjan

ответ

0

Использование внутреннее соединение

SELECT table2.id table2.field FROM table1 
INNER JOIN table2 ON table2.id = table1.id 

не тестировали код, и я новичок в SQL (присоединяется). Но вы видите patern :)

0

Ваш синтаксис запроса должен выглядеть следующим образом:

Select id from table1 where id = $somevalue 

Но почему вы хотите один и тот же идентификатор, с помощью которого вы ищите? Вы можете сразу это сделать:

select id, field2 from table2 where id = $somevalue 

Похоже полный беспорядок :(

Во всяком случае, вы можете Check This link о том, как выполнять запросы в PHP

0

Попробуйте это:

"SELECT * FROM table1 as t1 Left JOIN table2 as t2 ON t1.id = t2.id WHERE t1.id = ".$somevalue."" 
1

Просто попробуйте это.

select t2.id, t2.field2 from table2 t2, table1 t1 where t1.id = t2.id and t1.id = $someValue 

Полный код, как показано ниже

$query = sprintf("select t2.id, t2.field2 from table2 t2, table1 t1 where t1.id = t2.id and t1.id = '%s'", 
    mysql_real_escape_string($somevalue)); 

// Perform Query 
$result = mysql_query($query); 

while ($row = mysql_fetch_assoc($result)) { 
    echo $row['id']; 
    echo $row['field2']; 
} 
0

Вы должны быть в состоянии достичь этого с помощью JOIN, вот пример использования кода от вопроса

SELECT t2.field2 
FROM table1 t1 
JOIN table2 t2 
    ON t1.id = t2.id 
WHERE t1.id = $someValue 

Что Безразлично Посмотрите прямо здесь, присоединитесь к таблицам на своих столбцах Id. Обычно это первичный ключ и вряд ли будет использоваться по обе стороны соединения.

Соединиться из одной таблицы в другую для восстановления модели данных. Чтобы сделать это немного более конкретным, я изменю table1 на People и table2 до Addresses. Следующий запрос получает StreetName для конкретного человека через таблицу People. В этом случае People таблица содержит столбец AddressId, который держит Id для этого человека в таблице Адреса

SELECT a.StreetName 
FROM People p 
JOIN Addresses a 
    ON p.AddressId = a.id 
WHERE t1.id = $someValue 

Затем можно применить любой механизм РНР для выполнения запроса