2013-04-23 65 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`;