ホームページ バックエンド開発 PHPチュートリアル PHP は、指定されたフィールドをインデックスとして使用してデータベースから取得したデータ配列を返します_PHP チュートリアル

PHP は、指定されたフィールドをインデックスとして使用してデータベースから取得したデータ配列を返します_PHP チュートリアル

Jul 21, 2016 pm 03:01 PM
php のために による 分野 場合 私たち 指定 データ データベース 配列 索引 戻る プロジェクト

多くの場合、私たちは新しいプロジェクトに触れてから開発が完了するまで、自分が書いたコードをじっくりと読み返しますが、その多くは以前に使いこなしたコードです。したがって、新しいプロジェクトを完了するたびに、プロジェクトの概要とコードの概要を適切に実行すると、将来のプロジェクトでそれを使用できるようになり、コードの最適化やより良いアイデア、より迅速な実装方法など、予期せぬ利益が得られる可能性が非常に高くなります。 。

優れたプログラム開発者を決定するのは、コードの量ではなく、プログラム コードの単純さと、複雑なロジックにもかかわらず実装の容易さである場合があります。これらは、プログラマーが優れたプログラマーであるかどうかを示す要素です。私たちは、昼も夜も夜遅くまで残業して、大量のコードを急いで書くプログラマーにはなりたくないのです。
この記事では、他の人のコードを見て学んだいくつかの PHP プログラミング スキルを紹介します。また、私自身がまとめたものもあります。

特定のフィールドをインデックスとして使用して、データベースから取得したデータ配列を返します
例を挙げると簡単です:
他の Web サイトからの指定されたサイトのトラフィックをカウントし、そのサイトへの小さなバックエンドを作成するとします。各ウェブサイトの毎日の受信トラフィック状況を確認します。まず 2 つのデータ テーブルを構築しましょう:
テーブル 1、サイト構成テーブル (これらの Web サイトのトラフィックのみをカウントします)

コードをコピーします コードは次のとおりです:

CREATE TABLE `site_config` (
`id ` smallint(5 ) unsigned NOT NULL auto_increment COMMENT '主キー、自動インクリメント',
`sid` smallint(5) unsigned NOT NULL COMMENT 'ウェブサイト ID',
`site_url` varchar(128) NOT NULL COMMENT 'ウェブサイト URL address',
`site_name ` varchar(80) NOT NULL COMMENT 'Webサイト名',
`add_time` タイムスタンプ NOT NULL デフォルト CURRENT_TIMESTAMP COMMENT '時間を追加',
PRIMARY KEY (`id`),
UNIQUE KEY `adid` ( `sid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='サイト構成テーブル';

表 2、サイトトラフィック統計テーブル (ユーザーごとに 1 つのレコード)
コードをコピー コードは次のとおりです:

CREATE TABLE `site_stat ` (
`id` int(11) unsigned NOT NULL auto_increment COMMENT '主キー、自動インクリメント',
`sid` smallint(5) unsigned NOT NULL COMMENT 'ウェブサイト ID',
`ip_address` varchar(32) NOT NULL COMMENT 'ユーザー IP'、
`add_time` タイムスタンプ NOT NULL デフォルト CURRENT_TIMESTAMP COMMENT '時間を追加'、
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='サイト トラフィック統計テーブル';

なぜなら、site_config テーブルの読み取り操作は書き込み操作よりも大きいため、タイプは MyISAM に設定され、site_stat テーブルの書き込み操作は読み取り操作よりも大きいため、テーブル タイプを InnoDB に設定します。 (これらはデータ設計時に考慮する必要があることであり、速度が大幅に向上します)。
トピックに戻り、テーブル site_config に複数のデータがある場合:
データ形式は次のとおりです: id、sid、site_url、add_time
1,200,baidu.com,2013-06-30 14:20:00
2,201 、google.com、2013-06-30 14:20:00
3,202、cnblogs.com、2013-06-30 14:20:00
4,203、codejia.net、2013-06-30 14:20:00
サイト トラフィック統計テーブル 次のように、一部のデータが site_stat に生成されています:
データ形式は次のとおりです: id、sid、ip_address、add_time
1,200,167.87.32.4,2013-06-30 14:40:00
2,200,192.168.11.56,2013- 06-30 14:40 :10
3,202,167.87.32.4、2013-06-30 14:40:10
4,202,192.168.11.56、2013-06-30 14:40:20
5,203,167.87.32。 4,2013-06-30 14: 40:20
6,202, 10.10.10.10,2013-06-30 14:40:30
7,200,167.87.32.4,2013-06-30 14:40:31
バックグラウンドで作成する必要があるレポート形式は次のとおりです: date,ウェブサイトID、ウェブサイトURL、トラフィック数 (トラフィックのないサイトも表示され、トラフィックは0として表示されます)
日付に従って、SIDグループに従って、テーブルsite_statで考えてから左結合しますテーブル site_config これは明らかに私が共有する方法ではありません。
これを行うには 2 つの SQL を使用します。1 つはすべてのサイトを取得するもので、もう 1 つは指定された日付のサイトのトラフィック統計を取得するものです。

SQL1 はすべてのサイトを取得します:
コードをコピーします コードは次のとおりです:

SELECT sid,site_url,site_name FROM site_config

SQL2 はサイト統計を取得します (今日の場合):
コードをコピーします コードは次のとおりです:

SELECT sid,COUNT(1) AS Come_total FROM site_stat
WHERE add_time>='2013-06-30 00:00:00'
AND add_time<='2013-06 -30 23:59:59 '
GROUP BY sid

先ほど述べたことの多くは、渡されたフィールドをインデックスとして使用して 2- を返す PHP メソッドを共有しましょう。次元配列:
コードをコピーします コードは次のとおりです:

保護された関数 getList($sql,$filed = null){
$res = mysql_query($sql,$this->link_sc);
$data = array(); {
while($row = mysql_fetch_assoc($res)){
$data[] = $row;
}
}else{
while($row = mysql_fetch_assoc($res)){
$data[$row[$ filed]] = $row;
}
}
return $data;
}

渡されたフィールドは select によって返される必要があることが前提です。 。 現場で。
すべてのサイトを取得するときに past フィールドを渡す必要はありませんが、サイトのトラフィック統計を取得するときに、次のようにサイト sid を渡します:


コードをコピーします コードは次のとおりです:
$sites = getList($sql1); //すべてのサイト
$data = getList($sql2,'sid'); // サイトのトラフィック データ、インデックスとして sid を持つ 2 次元配列を返します


最後に, レポートを表示するときはforeach Loop $sitesを使用し、トラフィックを取得するときは配列$dataに移動してインデックスsid付きのデータを取得するだけです。
とても便利でマスターしやすいので、よく使っています。

最後に、上の表の統計結果レポートを見てください:
形式は次のとおりです: 日付、Web サイト ID、Web サイト URL、トラフィック数
2013-06-30,200,baidu.com,3
2013-06-30,201 ,google.com,0
2013-06-30,202,cnblogs.com,3
2013-06-30,203,codejia.net,1
要約: これだけ書くと、ほんの小さなスキルを説明しているように見えますが、そうではありません。このスキルを過小評価すると、時間を大幅に節約できます。そのため、皆さんもコードを書くときにもっとまとめて、ブログパークに来てみんなとコミュニケーションを取りながら学んでいけば、あなたのプログラミングレベルは確実に早く上がります!

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

tru​​ehttp://www.bkjia.com/PHPjc/327982.html技術記事多くの場合、新しいプロジェクトに出会ってから開発が完了するまで、自分が書いたコードをじっくりと読み返しますが、その多くは以前に使いこなしたコードです。それでは最後に…
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles