


PHP+Mysql は、複数のキーワードと複数のフィールドを含む SQL ステートメントを生成する関数を実装します。mysqlsql_PHP チュートリアル
PHP+Mysqlは、複数のキーワードと複数のフィールドを持つSQL文を生成する機能、mysqlsql
を実現しますこの記事の例では、PHP+Mysql を使用して、複数のキーワードと複数のフィールドを含む SQL ステートメントを生成する関数を実装する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
まず例を見てみましょう:
echo $sql=search($keyword,"enter_gongyin_pic","a+b+c"); //関数生成、LIMITなし、ORDER BYなし
生成:
$keyword は POST または GET で取得され、複数のフィールドで検索できます。 実装関数は次のとおりです:
{
//=============================================== ========
// パラメータの正式な説明:
//キーワードは「北京首都方面列車」などのキーワードです。スペースありでもなしでも
//table はテーブル名です (enter_gongyin_pic など)。
//フィールドはフィールドの組み合わせです。フィールドを検索したい場合は、名前を書くだけです
// 3 つ以上検索したい場合は、name+picdir を使用してください
//=============================================== ========
//まずフィールドを決定します
$new_field=explode("+",$field); // + を押すと剥がせます
$field_count=count($new_field); //取得された結果の数
$newstring=explode(" ",$keyword); //スペースで区切る
$newstring2=配列(); //文字列から無駄なスペースとアンクル要素を削除します
$i=0; foreach ($newstring as $key => $value) {
If($value!="")
{
$newstring2[$i]=$値
$i++; }
}
//文字列から不要なスペースとアンクル要素を削除します
$result_count=count($newstring2); //取得された結果の数
// 以下の SQL ステートメントを生成します
//************************ if($field_count==1) //1 フィールドを検索 START ********** * *****************
if($field_count==1) //フィールドを 1 つ検索します
{
if($result_count==1) //キーセグメントかどうかを判定
{
$newstring_search=$newstring2[0]; $sql="SELECT *
`$table` から
WHERE `".$new_field[0]."` LIKE '%$newstring_search%'";
}
If($result_count>1) //キーセグメントが複数あるかどうかを判定
{
$sql="SELECT *
`$table` から
どこで ";
$sql_add=""; foreach ($newstring2 as $key => $value)
{
if($key==0)
{
$sql_add=$sql_add."`".$new_field[0]."` LIKE '%".$value."%'"; }
それ以外は
{
$sql_add=$sql_add." OR `".$new_field[0]."` LIKE '%".$value."%'";
$sql=$sql.$sql_add
}
}
//********************** if($field_count==1) //フィールドを 1 つ検索END *********** ** ****************
//************************ if($field_count>1) //複数のフィールドを検索 START *********** * ****************
if($field_count>1) //複数のフィールドを検索します。このとき、$new_field は配列です。複数のフィールドがあります
{
if($result_count==1) //キーセグメントかどうか判定
{
$newstring_search=$newstring2[0] //$newstring_search はキーワードです
; $sql="SELECT *
`$table` から
どこで ";
$sql_add="";//新しく追加されたフィールド
foreach ($new_field as $key => $value)
If($key==0)
$sql_add=$sql_add."`".$value."` LIKE '%".$newstring_search."%'"; それ以外 $sql_add=$sql_add." OR `".$value."` LIKE '%".$newstring_search."%'"; $sql=$sql.$sql_add; }
if($result_count>1) //キーセグメント(複数キーワード)が複数あるかどうかを判定 ==========================
{
$sql="SELECT *
`$table` から
どこで ";
$sql_add="";//新しく追加されたフィールド
foreach ($new_field as $key => $value)
{
if($key==0) //$new_field[0] が発生した場合 例: `a` LIKE '%1%' OR `a` LIKE '%2%' OR `a` LIKE '%3%'
{ //入れ子になった foreach
foreach ($newstring2 as $key2 => $value2)
If($key2==0)
$sql_add=$sql_add."`".$value."` LIKE '%".$value2."%'"; それ以外 $sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'"; //入れ子になった foreach
}
それ以外は
//(name+picdirテーブルの確認などマルチフィールドの場合) FOREACH連続ループを開始し、ELSE $new_field[1] $new_field[2] $new_field[3]を毎回実行します。
// 対応する値は $value です
{
//ネストされた foreach (複数のフィールドと複数のキーワード)
foreach ($newstring2 as $key2 => $value2)
If($key2==0)
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'"; それ以外 $sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'"; //入れ子になった foreach
}
}//foreach ($new_field as $key => $value) 終了
$sql=$sql.$sql_add
}//if($result_count>1)終了
}//if($field_count>1) 終了
//************************ if($field_count>1) //複数のフィールドを検索END ************ *****************
$SQL を返す
}
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
あなたが話している無限レベルは、ツリーの形で無限ではありません。カテゴリの数が無制限で、レベルが 2 つしかないと言っているだけですよね。 A~Z のように 1 つの文字で表します。A はニュース、B はスポーツ、...
ニュースのカテゴリは文字の種類に設定でき、最初の文字は大きな疲れを意味し、次の文字は小さな文字を意味します。カテゴリ (A001 国際ニュース、A002 国内ニュース、B001 バスケットボールなど)
2 つのテーブルを作成します。1 つは、カテゴリ コードとカテゴリ名という 2 つのフィールドを持つニュース カテゴリ テーブルで、もう 1 つのカテゴリ テーブルには、カテゴリという 2 つのフィールドもあります。コードとカテゴリ名
ニューステーブルでは、文字型のカテゴリフィールドを使用するだけで問題ありません。
あなたのようなツリー状のディレクトリ出力を生成するには、まず SQL ステートメントをカテゴリに従って並べ替えるだけで、各データが上記のカテゴリと同じであるかどうかを確認し、+ か | かを判断します。目の前に表示されるのはこれだけです。
上の数字キー 1 の左側にあるこのポイントを使用します
http://www.bkjia.com/PHPjc/906678.html

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

SQLはリレーショナルデータベースを管理するための標準言語であり、MySQLはSQLを使用するデータベース管理システムです。 SQLは、CRUD操作を含むデータベースと対話する方法を定義しますが、MySQLはSQL標準を実装し、ストアドプロシージャやトリガーなどの追加機能を提供します。

フロントエンド開発においてJSONで機能と正規表現を安全に処理することができますが、JavaScriptが必要です...

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

MySQLは、迅速な開発や中小規模のアプリケーションに適していますが、Oracleは大規模な企業や高可用性のニーズに適しています。 1)MySQLはオープンソースで使いやすく、Webアプリケーションや中小企業に適しています。 2)Oracleは強力で、大企業や政府機関に適しています。 3)MySQLはさまざまなストレージエンジンをサポートし、Oracleは豊富なエンタープライズレベルの機能を提供します。
