2013-04-23 80 views
0

我有一個簡單的PHP代碼,從SQL表中獲取數據。從2表和PHP的SQL查詢

表1

date_time 
name 

和存儲名稱(同表1)和圖片鏈接另一個表。

表2

name 
pic 

PHP

$db = new PDO("mysql:host=$host;dbname=$dbname", "$username", "$password"); 
$sql = "select * from table1"; 
foreach ($db->query($sql) as $row) { 
echo '<span class=name>'.$row['name'].'</span>'; 
echo "<img src=".$row['pic']." width='25px' height='25px'/>"; 
$db = null; 
} 

我要的是要顯示的名字從表2($row['pic'])圖片按照名稱在表1中 如何在SQL聲明和php代碼應該是爲了實現這一目標? 我在phpMyadmin中運行一個sql語句並獲得它,但是不能在php代碼中進行翻譯。

select table1.name,table2.pic from table1,table2 where table1.name=table2.name; 
+1

所以這查詢不工作? – 2013-04-23 06:42:31

+0

您的'查詢'應該工作,一旦檢查單引號和雙引號的平衡。 – 2013-04-23 06:44:02

回答

3

如何使用JOIN

SELECT table1.name, table2.pic 
FROM table1 
INNER JOIN table2 
    ON table1.name = table2.name 
+0

這做了工作。我只是不知道如何使用INNER JOIN。我會盡我所能接受。謝謝大家! – Theodoros80 2013-04-23 06:50:33

0

試試這個,用as關鍵字別名列名,這樣就可以在迴路中得到'name''pic'指數。

select 
    table1.name as `name`, 
    table2.pic as `pic` 
from table1, table2 
where table1.name = table2.name; 

更好的方式來做到這一點使用加入

select 
    `table1`.`name` as `name`, 
    `table2`.`pic` as `pic` 
from `table1` 
    inner join `table2` 
    on `table1`.`name` = `table2`.`name`;