mySQLを使用して最初のPHPスクリプトを作成しようとしていますが、どうしても助けが必要です。これは比較的簡単だと思いますが、テーブルに1つのフィールド(たとえば、ユーザー名)があり、指定されたユーザー名と同じ行にある別のフィールド(たとえば、名前)をフェッチしたい場合は、それ、どうやったら出来るの?
繰り返しになりますが、これは簡単だと思いますが、迷子になっているので、助けていただければ幸いです。ありがとう!
$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');
これにより、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
必要なものだけに制限することは、長期的にははるかに効率的です。