ウェブサイト検索

PHP MySQL WHERE 句


XAMPP で PHP を使用して MySQL データベースからデータを選択およびフィルタリングする方法

このガイドでは、XAMPP スタックの PHP を使用してWHERE 句と SELECT コマンドを使用して特定の条件に基づいてMySQL データベースからレコードを選択する方法について説明します。

前提条件

次のガイドの説明に従って、XAMPP スタックにデータベースとテーブルが作成されていることを確認してください。

  • XAMPP で PHP を使用して MySQL データベースとテーブルを作成する

デモの目的で、以下のスキーマとレコードを使用して、"my_company" という MySQL データベースに "sales" という名前のテーブルを作成しました。

データベースのスキーマとレコード

PHP を使用した WHERE 句による MySQL テーブルからのデータのフィルタリング

WHERE句は、特定の条件に一致するレコードのみを抽出するために使用します。 WHERE 句は、演算子の後に値を指定することで条件をチェックします。

WHERE 句の構文:

SELECT column1,column2,.,column n from table_name WHERE column_name operator value;

どこ、

  • column_name - 条件が適用される列。
  • 演算子 - 条件を確認するために使用されます。
  • value - テーブルに存在するすべての列の値と比較される文字列/数値です。

ステップ

1. サーバー名 (例: localhost)、データベース ユーザー名 (例: root)、root ユーザーのパスワード、およびデータベース名 (例: my_company) を指定します。ここで、root ユーザーのパスワードは空です。

2. mysqli_connect() 関数を使用して接続を確立します。サーバー名、ユーザー名、パスワードをパラメーターとして受け取ります。

コード:

$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

3. SQL クエリを指定して、条件によってテーブルから特定の列またはすべての列のレコードを選択します。このステップでは、テーブルから列を選択して変数に入れる SQL クエリを指定できます。

たとえば、my_company というデータベース名を使用し、それを query という変数に保存します。テーブル名はsales で、3 つの列があります。

コード:

$query = "SELECT column1,…. from sales where column_name operator value";

4. mysqli_query() 関数を使用して、選択した結果を "final" という変数に保存します。 「接続」と「クエリ」をパラメータとして受け取ります。

コード:

mysqli_query($connection, $query);

5. mysqli_num_rows() 関数を使用して、「final」変数から行を 1 つずつ取得します。その後、mysqli_fetch_assoc() 関数を使用して while ループを反復して結果を取得します。 「final」変数をパラメータとして受け取ります。

コード:

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
    echo $i["column1”],…………..;
  }
} else {
  echo "No results";
}

6. 最後に、mysqli_close() 関数を使用して接続を閉じます。

コード:

mysqli_close($connection);

では、上記の手順に基づいてサンプルの PHP コードを作成してみましょう。

WHERE 句を使用して MySQL データベースからデータを選択する PHP コード

コード例 1:

この例では、「sales」テーブルから id 値が 4 より大きいすべての列を選択しますを実行し、結果を PHP ページに表示します。

したがって、column_name を次のように指定すると、演算子は (">") より大きくなり、値は 4 になります。 ID

/htdocs フォルダーに select.php という名前の新しいファイルを作成し、次の内容を含めます。

注意: Linux を使用している場合、htdocs フォルダは /opt/lampp/ ディレクトリにあります。 Windows を使用している場合、htdocs は通常 C:\xampp\ フォルダーにあります。

<?php
//specify the server name and here it is localhost
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name - "my_company"
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//sql query to select particular columns
//select all columns such that id is greater than 4
$query = "SELECT * from sales where id>4";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

Web ブラウザを開き、http://localhost/select.php URL を指定します。 id が 4 より大きいデータが選択され、結果がブラウザ ウィンドウに表示されていることがわかります。

WHERE 句を使用して MySQL データベースからデータを選択する

コード例 2:

この例では、名前である「sales」テーブルからすべての列を選択します。 >「Eggs」をクリックし、PHP ページに結果を表示します。

したがって、column_namename として指定すると、演算子は ("=") に等しく、値は "Eggs" になります。

<?php
//specify the server name and here it is localhost
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//sql query to select particular columns
//select all columns such that name equals to Eggs
$query = "SELECT * from sales where name ='Eggs'";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

Web ブラウザを開き、http://localhost/select.php URL を指定します。 name ='Eggs' の箇所でデータが選択されて表示されていることがわかります。

Eggs という名前を含む列を選択してください

コード例 3:

この例では、カウントを 45 として、「sales」テーブルからすべての列を選択します。 を実行し、結果を PHP ページに表示します。

したがって、column_name を count として指定すると、演算子は ("=") に等しく、値は 45 になります。

<?php
//specify the server name and here it is localhost
$server_name = "localhost";

//specify the username - here it is root
$user_name = "root";

//specify the password - it is empty
$password = "";

//specify the database name
$database_name = "my_company";

// Creating the connection by specifying the connection details
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);

//sql query to select particular columns
//select all columns such that count is 45
$query = "SELECT * from sales where count =45";

#get the result
$final = mysqli_query($connection, $query);

if (mysqli_num_rows($final) > 0) {
 //get the output of each row
  while($i = mysqli_fetch_assoc($final)) {
      //get all columns
    echo "id: " . $i["id"]. "  ----> name: " . $i["name"]."  ----> count: " . $i["count"]. "<br>";
  }
} else {
  echo "No results";
}

//close the connection
mysqli_close($connection);
?>

Web ブラウザを開き、http://localhost/select.php URL を指定します。 count=45 のデータが選択され、結果の列が表示されていることがわかります。

カウント 45 を含む列を選択してください

結論

このチュートリアルでは、PHP の WHERE 句を使用して、 特定の条件に基づいてMySQL データベースからデータを選択する 3 つの異なる方法について説明しました。最初の例では、数値「id」を使用してデータをフィルタリングする方法を示しました。 2 番目と 3 番目の例では、それぞれ文字列値「name」と数値「count」を使用してデータを選択する方法を説明しました。

関連記事