目次
PHP+Mysqlは、複数のキーワードと複数のフィールドを持つSQL文を生成する機能、mysqlsql
php+mysqlで無制限のレベル分類を実現する方法とデータベースを設計する方法? SQL ステートメントはデータを読み取り、配列を生成します
ホームページ バックエンド開発 PHPチュートリアル PHP+Mysql は、複数のキーワードと複数のフィールドを含む SQL ステートメントを生成する関数を実装します。mysqlsql_PHP チュートリアル

PHP+Mysql は、複数のキーワードと複数のフィールドを含む SQL ステートメントを生成する関数を実装します。mysqlsql_PHP チュートリアル

Jul 13, 2016 am 10:15 AM
mysql php SQL文

PHP+Mysqlは、複数のキーワードと複数のフィールドを持つSQL文を生成する機能、mysqlsql

を実現します

この記事の例では、PHP+Mysql を使用して、複数のキーワードと複数のフィールドを含む SQL ステートメントを生成する関数を実装する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです

まず例を見てみましょう:

コードをコピーします コードは次のとおりです:
$keyword="1 2 3";
echo $sql=search($keyword,"enter_gongyin_pic","a+b+c"); //関数生成、LIMITなし、ORDER BYなし

生成:
コードをコピー コードは次のとおりです:
SELECT * FROM `enter_gongyin_pic` WHERE `a` LIKE '%1%' OR 'a` LIKE '%2%' OR 'a` LIKE '%3% ' OR ' b` LIKE '%1%' OR 'b' LIKE '%2%' OR 'b' LIKE '%3%' OR 'c' LIKE '%1%' OR 'c' LIKE '%2% ' または ' c' のように '%3%'

$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 プログラミング設計に役立つことを願っています。

php+mysqlで無制限のレベル分類を実現する方法とデータベースを設計する方法? SQL ステートメントはデータを読み取り、配列を生成します

あなたが話している無限レベルは、ツリーの形で無限ではありません。カテゴリの数が無制限で、レベルが 2 つしかないと言っているだけですよね。 A~Z のように 1 つの文字で表します。A はニュース、B はスポーツ、...

ニュースのカテゴリは文字の種類に設定でき、最初の文字は大きな疲れを意味し、次の文字は小さな文字を意味します。カテゴリ (A001 国際ニュース、A002 国内ニュース、B001 バスケットボールなど)

2 つのテーブルを作成します。1 つは、カテゴリ コードとカテゴリ名という 2 つのフィールドを持つニュース カテゴリ テーブルで、もう 1 つのカテゴリ テーブルには、カテゴリという 2 つのフィールドもあります。コードとカテゴリ名

ニューステーブルでは、文字型のカテゴリフィールドを使用するだけで問題ありません。

あなたのようなツリー状のディレクトリ出力を生成するには、まず SQL ステートメントをカテゴリに従って並べ替えるだけで、各データが上記のカテゴリと同じであるかどうかを確認し、+ か | かを判断します。目の前に表示されるのはこれだけです。


mysqlのSQL文にキーワードがある場合の対処法

tb_test (`use`) 値に挿入 ('test');

上の数字キー 1 の左側にあるこのポイントを使用します


http://www.bkjia.com/PHPjc/906678.html

tru​​ehttp://www.bkjia.com/PHPjc/906678.html技術記事 PHP+Mysql で複数のキーワードとフィールドを含む SQL 文を生成する機能 mysqlsql を実現する この記事では、PHP+Mysql で複数のキーワードとフィールドを含む SQL 文を生成する機能を実現する方法について説明します。みんなとシェアしましょう...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MySQLおよびPHPMYADMIN:コア機能と関数 MySQLおよびPHPMYADMIN:コア機能と関数 Apr 22, 2025 am 12:12 AM

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

IISとPHPの互換性:ディープダイビング IISとPHPの互換性:ディープダイビング Apr 22, 2025 am 12:01 AM

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

MySQLの外国キーの目的を説明してください。 MySQLの外国キーの目的を説明してください。 Apr 25, 2025 am 12:17 AM

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

mysqlとmariadbを比較対照します。 mysqlとmariadbを比較対照します。 Apr 26, 2025 am 12:08 AM

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

SQL対MySQL:2つの関係を明確にします SQL対MySQL:2つの関係を明確にします Apr 24, 2025 am 12:02 AM

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

関数と正規表現を含むJavaScriptオブジェクトをデータベースに安全に保存して復元するにはどうすればよいですか? 関数と正規表現を含むJavaScriptオブジェクトをデータベースに安全に保存して復元するにはどうすればよいですか? Apr 19, 2025 pm 11:09 PM

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

session_start()が複数回呼び出されるとどうなりますか? session_start()が複数回呼び出されるとどうなりますか? Apr 25, 2025 am 12:06 AM

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

MySQLはOracleとどのように違いますか? MySQLはOracleとどのように違いますか? Apr 22, 2025 pm 05:57 PM

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

See all articles