2015-10-19 18 views
0
$sql=mysql_query("SELECT a.ssmid, a.image,b.ssmid,b.image,c.ssmid,c.image FROM a user_photos_offline INNER JOIN user_profile_pic b on a.ssmid = b.ssmid INNER JOIN user_family_photos c on a.ssmid = c.ssmid"); 

    while($row=mysql_fetch_assoc($sql)){ 
     echo $row['image']; 
    } 

我想选择数据库中的所有图像3个表,我有3个表,这些表名user_photos_offlineuser_profile_picuser_family_photos和列名是image所有表。如何选择SQL

而且在3代表我有ssmid同一列,现在我要选择图像的这3个表

+1

应该不是表名列前的快捷方式名称? 'user_photos_offline a'而不是'user_photos_offline'? –

回答

0

来指代图像seperately,用AS

SELECT 
    a.ssmid, a.image AS a_image, 
    b.ssmid, b.image AS b_image, 
    c.ssmid, c.image AS c_image 
FROM user_photos_offline a 
INNER JOIN user_profile_pic b on a.ssmid = b.ssmid 
INNER JOIN user_family_photos c on a.ssmid = c.ssmid 

在PHP中,你的指数将改变这些标识符:

while($row=mysql_fetch_assoc($sql)){ 
    echo $row['a_image']; 
    echo $row['b_image']; 
    echo $row['c_image']; 
} 
+0

有一个错字 - 'a-image'应该是'a_image' :)快乐编码! ;) – Dencker

+0

警告:mysql_fetch_assoc()期望参数1是资源,布尔值在C:\ xampp \ htdocs \ matrimonial \ new \ KANI \ image-cropper \ index.php中给出 –

+0

抱歉,错过了shift键。感谢编辑。 – syck

0

如果在每个表的ssmid之间没有关系,user_profile_picuser_family_photos,不需要使用INNER JOIN。使用UNION代替:

$sql=mysql_query(
    "SELECT ssmid, image, CONCAT('folder1/', image) as image_filename FROM user_photos_offline 
    UNION 
    SELECT ssmid, image, CONCAT('folder2/', image) as image_filename FROM user_profile_pic 
    UNION 
    SELECT ssmid, image, CONCAT('folder3/', image) as image_filename FROM user_family_photos" 
    ); 

while($row=mysql_fetch_assoc($sql)){ 
    echo $row['image']; 
    echo $row['image_filename']; 
} 
+0

K其工作正常,但所有图像我移动到三个不同的文件夹,如何显示img标签 –

+0

你可以创建另一个字段image_filename。在我的答案上看到更改 –

+0

晚餐其工作,谢谢亲爱的... –