mysql_query の結果をフィルタリングして、特定の列の値のみを含むリストを取得する簡単な方法はありますか?
$query = mysql_query("SELECT * FROM users");
$list_of_user_names = get_values($query,"names");
の代わりに使用する関数の名前は何get_values
ですか?
データベースのフィールド名が「names」であると仮定します
$query = mysql_query("SELECT names FROM users");
while($row = mysql_fetch_assoc($query)){
echo $row['names'];
echo "<br>";
}
注 : mysql_* 関数は新しいバージョンの php では非推奨です。mysqli_* または PDO を使用してください
これを試して:
$query = mysql_query("SELECT names FROM users");
if (!$query) {
echo "Could not successfully run query from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($query) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $names
while ($row = mysql_fetch_assoc($query)) {
echo $row["names"];
}
以下の関数を使用します。
function get_values($q,$c)
{
$arr = array();
while($row = mysql_fetch_array($q))
{
$arr[] = $row[$c];
}
return $arr; // return all names value.
}