mySQL fetch列基于PHP中的另一列

时间:2010-09-14 00:59:54

标签: php mysql fetch

我正在尝试用mySQL编写我的第一个PHP脚本,我迫切需要一些帮助。我确信这是相对简单的,但是如果我的表中有一个字段(例如用户名),并且我想获取另一个字段(例如,名称),那就是与给定用户名在同一行中,我该怎么做?

同样,我确信这很容易,但我迷路了,所以我真的很感激任何帮助。谢谢!

2 个答案:

答案 0 :(得分:4)

$sql = "SELECT username, name FROM table";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)) { 
    echo "This {$row['username']} has the name {$row['name']}\n";
}

答案 1 :(得分:0)

halfdan的答案有点可行,但它会获取所有行并显示它们。你想要的是一个WHERE子句,它允许你过滤表的内容,以便查询只返回你想要的行:

SELECT username, name
FROM sometable
WHERE (username = 'johndoe');

这将只返回username字段等于'johndoe'的行。从概念上讲,它相当于:

$results = mysql_query("SELECT username, name FROM table");
while($row = mysql_fetch_assoc($results)) {
    if ($row['username'] == 'johndoe') {
        // do something, this is a row you want
    } else {
        // not a row you want. ignore it, or deal with it some other way
    }
}

主要区别在于,对于数据库中的大型数据集,像这样进行客户端过滤是很昂贵的,因为必须传输表的全部内容。从长远来看,使用WHERE子句将事物限制在你想要的范围内会更有效率。