Php 连接表后从MySql中选择某些行信息

Php 连接表后从MySql中选择某些行信息,php,mysql,Php,Mysql,我正在建立一个照片上传网站,我将两个表连接在一起,以显示上传图片的人的用户名。这是可行的,但它会打印数据库中的每个名称,而不仅仅是所选的图像 使用以下查询调用所选图像 $data = mysql_query("SELECT * FROM photos WHERE id=$imageID"); 下面的代码尝试显示用户名,但我需要它只针对$imageID的行。我该怎么做 <?php $query = mysql_query("SELECT username, user_id

我正在建立一个照片上传网站,我将两个表连接在一起,以显示上传图片的人的用户名。这是可行的,但它会打印数据库中的每个名称,而不仅仅是所选的图像

使用以下查询调用所选图像

$data = mysql_query("SELECT * FROM photos WHERE id=$imageID");
下面的代码尝试显示用户名,但我需要它只针对$imageID的行。我该怎么做

<?php
        $query = mysql_query("SELECT username, user_id ".
        "FROM users, photos ".
        "WHERE (users.id = photos.user_id)");
        while($uploader = mysql_fetch_array( $query ))
        {   
        echo $uploader['username']; }
?>


提前感谢。

您实际上并没有根据相关照片的ID缩小搜索结果的范围。我可以想象你想要一个更像这样的查询:

$data = mysql_query("SELECT u.username, p.user_id FROM users u, photos p WHERE u.id = p.user_id AND p.id = $imageID");

但这有点狡猾,因为您只是将一个变量直接替换到sql中,它可能会受到注入攻击。您的另一个查询也是如此


您可能应该考虑使用参数化查询。

这是在另一个页面上完成的,效果很好$imageID是我需要添加到查询中的某个地方的变量。我没有注意到这一点,我在答案中发布的查询中有图像标识符。非常感谢,这非常有效。这个项目只会被大学的工作人员使用,我还没有想到会产生比这个更复杂的东西。只是出于兴趣,供将来参考,你所说的参数化查询是什么意思?还没有人教过这些东西。。。伟大的感谢@appclay的链接
<?php
    $query = mysql_query("SELECT username, user_id ".
    "FROM users, photos ".
    "WHERE (users.id = photos.user_id and photos.id = $imageID)");
    while($uploader = mysql_fetch_array( $query ))
    {   
    echo $uploader['username']; }
?>