我正在尝试使用 mySQL 编写我的第一个 PHP 脚本,我迫切需要一些帮助。我确信这相对简单,但是如果我的表中有一个字段(例如用户名),并且我想获取另一个字段(例如名称),它与给定的用户名在同一行,我怎么做?
同样,我确信这很容易,但我迷路了,所以我非常感谢任何帮助。谢谢!
$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";
}
halfdan 的答案有点工作,但它会获取所有行并显示它们。您想要的是一个WHERE
子句,它允许您过滤表的内容,以便查询只返回您想要的行:
SELECT username, name
FROM sometable
WHERE (username = 'johndoe');
这将仅返回用户名字段等于“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
子句将事情限制在您想要的范围内会更有效率。