データベースクエリ結果から多次元配列を構築するソリューション
多次元配列を構築するためのデータベース クエリの結果
前のデータベース クエリの結果から多次元配列を構築したいと思います。データベース クエリの最初の結果はネストの最初のレベルに対応し、2 番目の結果はネストに対応します。ネストの第 2 レベルに相当します。どうやって行うのですか。私は初心者であることをあらかじめ宣言しておきます。
<br /> // 查询变量<br /> <br /> $sql1 = "select remark,name from arp_careset where typegroup ='dissect-position' order by id"; <br /> $rs1 = mysql_query($sql1); <br /> <br /> while($r1 = mysql_fetch_assoc($rs1)) <br /> { echo $r1['name']; <br /> <br /> $sql = "select group_concat(name) as name from arp_careset where typegroup <>'dissect-position' and typegroup like '%".$r1["remark"]."%' order by id";<br /> $rs = mysql_query($sql); <br /> <br /> while($r = mysql_fetch_array($rs)) <br /> { $ar = explode(',', $r['name']); <br /> echo join(' ', $ar); <br /> } }<br /> //构建数组<br /> <br /> $mem = array(<br /> array<br /> (<br /> lang_show(''),<br /> array<br /> (<br /> // 嵌套开始<br /> array(<br /> lang_show('account_manager'),<br /> //第二层嵌套<br /> array(<br /> 'group_list.php,1',<br /> )<br /> //第二层嵌套结束 <br /> ),<br /> // 嵌套结束<br /> ) <br /> ),<br /> );
-----解決策--------------------------------
あなたのデータ整理はあなたに与えます 読み出すことは多くの不便をもたらします
このように書きます
$rs = mysql_query("select name, SUBSTRING_INDEX(typegroup,'-',-1) as secondary, remark from arp_careset where SUBSTRING_INDEX(typegroup,'-',1)='dissect'");<br /> while($r = mysql_fetch_assoc($rs)) {<br /> echo $r['name']. '<br />';<br /> $rs1 = mysql_query("select name, SUBSTRING_INDEX(typegroup,'-',-1) as secondary, remark from arp_careset where SUBSTRING_INDEX(typegroup,'-',1)='$r[secondary]' and SUBSTRING_INDEX(typegroup,'-',-1) = '$r[remark]'");<br /> while($r = mysql_fetch_assoc($rs1)) {<br /> echo $r['name'] . ' ';<br /> }<br /> echo '<br />';<br /> }
体表
栄養状態 分泌物 被毛 皮膚 目/眼窩 手足/尾 乳腺 外性器 肛門
リンパ節
腋窩リンパ節 頸部リンパ節 鼠径リンパ節 肺リンパ節 腸リンパ節
頭と首
まぶた/角膜/瞳孔 歯/歯茎 耳 鼻 髄膜/全脳 頭蓋骨 唾液腺 食道 気管 甲状腺
胸
胸壁、横隔膜/縦隔、心臓、大動脈弓、肺、気管支
腹部
腹部 腸間膜 脾臓 膵臓 腎臓
-----解決策---------------------------- ---
「データの整理が不十分である」と言えるのはなぜですか?
メイングループ typegroup には 2 つのカテゴリの情報が含まれています
「隣接リスト アルゴリズム」によれば、カテゴリ情報は 1 つだけ含める必要があります
データから判断すると、表現の所有権を一意に確認するには、typegroup と review の 2 つのフィールドを使用する必要があります
これは実際には「隣接リスト アルゴリズム」です
SUBSTRING_INDEX 関数を使用してタイプグループを分割し、カテゴリ情報を取得できるようになりました
ただし、SUBSTRING_INDEX 関数は mysql 独自のものです。将来何らかの理由でデータベースシステムが変更された場合、コードの修正量が膨大になる可能性があります
分割作業をphpに任せることもできますが、「いいね!」が多いとクエリ効率が低下します
プログラムも肥大化しているようです
-----解決策---------
マルチ次元配列
$res = array(); //これは結果の配列です<br> $rs = mysql_query("名前、SUBSTRING_INDEX(typegroup,'-',-1) をセカンダリとして選択、arp_careset からのコメント、SUBSTRING_INDEX(typegroup,'-',1)='dissect'");<br> while($r = mysql_fetch_assoc($rs)) {<br> $tmp = array() //一時配列を初期化します<br> $rs1 = mysql_query("名前、SUBSTRING_INDEX(typegroup,'-',-1) をセカンダリとして選択、arp_careset からのコメント SUBSTRING_INDEX(typegroup,'-',1)='$r[secondary]' および SUBSTRING_INDEX(typegroup, '-',-1) = '$r[備考]'"); <div class="clear"></div>

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
