目次
とりあえずこのコードを使ってみましたが、少しばかばかしい気がします
ホームページ バックエンド開発 PHPチュートリアル 「関連記事」の結果はより関連性が高く、上位に表示されるので、効率的な書き方を見つけてください。

「関連記事」の結果はより関連性が高く、上位に表示されるので、効率的な書き方を見つけてください。

Jun 23, 2016 pm 01:50 PM
書き方 ランキング 記事 場合 関連している

私の記事システム、複数の条件下でどのような可能性を達成できるかを確認したいです


4 つのテーブル 基本的な紹介
コンテンツ 記事のメインテーブル
ID
蓋 = 関連するコレクション ID、保存形式 (1,2,3)
tags = 該当TAGのID、保存形式(1,2,3)
typeid = カテゴリIDは1桁の数字のみ
コレクション

名前

タグ
id
名前
カテゴリ
typeid
名前

typeid =カテゴリID、これ以上言う必要はありません
tag = タグ = 言うまでもなく、
蓋 = コレクションですが、1 つの記事を複数のコレクションに配置できます。例: PHP+MYSQL+AJAX 更新なし コメント
ユーザーは PHP アンソロジーを置くことができます。 MYSQL記事、AJAXアンソロジー

TAGは重複がある場合は追加されませんので、独自の記事のカテゴリリストを作成することはできません。

記事の特定の部分には、現在のコレクション内の他の記事がすでに表示されているため

したがって、関連記事セクションでは、コレクション内のファイルが TAG 記事より上位にランクされるべきではありません

したがって、準備された関係性ランキングは
1. TAG 関連
2. アンソロジー
3. 現在のカテゴリの最新記事


なぜ 3 回に分けなければならないのですか???
タグ付けされすぎるのが怖いからです。アンソロジー機能は使ったことはありません....
ということで最後のステップは 現在のカテゴリー記事


現在の記事の
TAG は 3,14
蓋 = 7,12
typeid = 2

SELECT * FROM `content` WHERE `tags` IN (3,14) ORDER BY `time` DESC LIMIT 10
SELECT * FROM `content` WHERE `lid` IN (7,12) ORDER BY `time` DESC LIMIT 10
SELECT * FROM `content` WHERE `typeid` = '2' ORDER BY `time` DESC LIMIT 10


フロントに関連記事が10件表示されます
当初は3回に分ける予定でしたが、毎回 10 個の記事を取得するのが最も安全です

後で考えました...これには配列のマージなども含まれますが、ポイントは情報が多すぎることですが、フロントデスクに必要な項目は 10 個だけです

そこで、次のように変更します。一文
SELECT * FROM `video_content` WHERE `tags` IN (3,14) or `lid` IN (3) or `typeid` = 2 LIMIT 10

でも、TAG>Anthology>でランキングできるみたいです。分類...

どうやってリクエストすればいいのですか?

リクエストはページの下半分に関連記事が表示されるのでかなり面倒そうです

への返信議論(解決策)

とりあえずこのコードを使ってみましたが、少しばかばかしい気がします

より良い方法についての提案はありますか?

//相关文章if (!empty($data["tags"]) || !empty($data["lid"])) {	$tags = $data["tags"];	$lid = $data["lid"];	$tag_sql = "SELECT * FROM `content` WHERE `tags` IN ($tags) OR `lid` IN ($lid) ORDER BY `time` DESC LIMIT 8";	$stmt = $pdo->prepare($tag_sql);	$stmt->execute();	$tags_v = $stmt->fetchAll(PDO::FETCH_ASSOC);	$smarty -> assign("r_v",$tags_v);}$tags_num = count($tags_v);if ($tags_num < 8 ) {	$now_v = "";	foreach ($tags_v as $key => $value) {  		$now_v .= $value['vid'].",";	}		$now_v=substr("$now_v",0,-1);	$need = 8-$tags_num;	$typeid = $data["typeid"];	$typeid_sql = "SELECT * FROM `content` WHERE `typeid` = '$typeid' AND  `vid` NOT IN ($now_v) ORDER BY `time` DESC LIMIT $need";	$stmt = $pdo->prepare($typeid_sql);	$stmt->execute();	$typeid_v = $stmt->fetchAll(PDO::FETCH_ASSOC);	$smarty -> assign("r_tv",$typeid_v);}
ログイン後にコピー


or を使用してください。SQL には元々ありません。良い;

データがあまりタイムリーである必要がない場合

3 つの SQL ステートメントによって結合されたデータを一定期間 (30 分、1 時間、またはそれ以上) キャッシュします
データはデッドデータであるため、ビューやコメントなどはありません。

SQL に or を使用するのは良くありません。

データがあまりにもタイムリーである必要がない場合は

3 つの SQL ステートメントによって結合されたデータを一定期間キャッシュします ( 30 分、1 時間、あるいはもう少し長くても構いません)
あなたのデータは閲覧数やコメントなどのない死んだデータであるためです。
ありがとうございます
これは私も理解しています


でも、私がもっと知りたいのは、ランク付けされているかどうかです。より関連性の高いものに従って、最初の

は、最初に TAG を並べ替え、次に LID を並べ替え、最後に同じ種類の他の記事を並べ替える

2 階のメソッドのみを使用できるということでしょうか? 10 個のタグが必要な場合は、最初に 10 個のタグを取得し、足りない場合は残りのタグを取得し、それでも不十分な場合は type を持つタグを取得するという意味ですか?

この場合、SQL に問題がありますか?


10 個のタグが必要な場合は、まず 10 個のタグを取得し、十分でない場合はライブラリを取得し、十分でない場合は型を取得する必要があるという意味ですか?

この場合、SQL に問題がありますか?

はい

2階で簡単なものを作りました

タグと蓋はとりあえず無視してください

足りなかったら型を取ります
そして2階でテスト用に8個使います

ありますかもっと良い方法はありますか?

全文検索して実行してください
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

2024 CSRankings 全国コンピュータ サイエンス ランキングが発表されました! CMUがリストを独占、MITはトップ5から外れる 2024 CSRankings 全国コンピュータ サイエンス ランキングが発表されました! CMUがリストを独占、MITはトップ5から外れる Mar 25, 2024 pm 06:01 PM

2024CSRankings 全国コンピューターサイエンス専攻ランキングが発表されました。今年、米国の最高のCS大学のランキングで、カーネギーメロン大学(CMU)が国内およびCSの分野で最高の大学の一つにランクされ、イリノイ大学アーバナシャンペーン校(UIUC)は6年連続2位となった。 3位はジョージア工科大学。次いでスタンフォード大学、カリフォルニア大学サンディエゴ校、ミシガン大学、ワシントン大学が世界第4位タイとなった。 MIT のランキングが低下し、トップ 5 から外れたことは注目に値します。 CSRankings は、マサチューセッツ大学アマースト校コンピューター情報科学部のエメリー バーガー教授が始めたコンピューター サイエンス分野の世界的な大学ランキング プロジェクトです。ランキングは客観的なものに基づいています

今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! 今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! Mar 15, 2024 pm 04:13 PM

1. 今すぐ Toutiao の記事を公開してどうやってお金を稼ぐことができますか?今すぐ Toutiao で記事を公開して収入を増やす方法! 1. 基本的な権利と利益の有効化: オリジナルの記事は広告によって利益を得ることができますが、利益を得るにはビデオが横画面モードでオリジナルである必要があります。 2. ファン100人の権利を有効化:ファン数が100人以上に達すると、マイクロヘッドライン、オリジナルQ&amp;A作成、Q&amp;Aから利益を得ることができます。 3. オリジナル作品にこだわる: オリジナル作品には記事、小見出し、質問などが含まれ、300 ワード以上であることが求められます。違法に盗用された作品をオリジナル作品として出版した場合、クレジットポイントが減点され、利益も差し引かれますのでご注意ください。 4. 垂直性:専門分野の記事を書く場合、分野を超えて自由に記事を書くことができず、適切な推薦が得られず、専門性や洗練度が得られず、ファンもつきにくいそして読者たち。 5. 活動: 高活動、

PHP フォーム処理: フォーム データの並べ替えとランキング PHP フォーム処理: フォーム データの並べ替えとランキング Aug 09, 2023 pm 06:01 PM

PHP フォーム処理: フォーム データの並べ替えとランク付け Web 開発では、フォームは一般的なユーザー入力方法です。ユーザーからフォーム データを収集した後、通常はデータを処理して分析する必要があります。この記事では、PHP を使用してフォーム データを並べ替えてランク付けし、ユーザーが送信したデータをより適切に表示および分析する方法を紹介します。 1. フォームデータの並び替え ユーザーから送信されたフォームデータを収集する際、データの順序が必ずしも当社の要件を満たしていないことが判明する場合があります。特定のルールに従って表示または分割する必要があるもの

Java のコールバック関数の基本構文と応用 Java のコールバック関数の基本構文と応用 Jan 30, 2024 am 08:12 AM

Java コールバック関数の基本的な書き方と使用法の紹介: Java プログラミングでは、コールバック関数は一般的なプログラミング パターンです。コールバック関数を通じて、メソッドをパラメータとして別のメソッドに渡し、それによってメソッドの間接的な呼び出しを実現できます。コールバック関数の使用は、イベント駆動型、非同期プログラミング、インターフェイス実装などのシナリオで非常に一般的です。この記事では、Java コールバック関数の基本的な書き方と使い方を紹介し、具体的なコード例を示します。 1. コールバック関数の定義 コールバック関数は、パラメータとして使用できる特殊な関数です。

MyBatisでの小なり記号の書き方を詳しく解説 MyBatisでの小なり記号の書き方を詳しく解説 Feb 21, 2024 pm 08:36 PM

MyBatisでの「未満」記号の書き方を詳しく解説 MyBatisはJava開発で広く使われている優れた永続層フレームワークです。データベース操作に MyBatis を使用するプロセスでは、しばしば小なり記号 (

USDT取引プラットフォームとは何ですか? USDT取引プラットフォームソフトウェアアプリランキングトップ10 USDT取引プラットフォームとは何ですか? USDT取引プラットフォームソフトウェアアプリランキングトップ10 Feb 02, 2024 am 10:06 AM

USDT (テザー) は法定通貨に固定された暗号通貨で、米ドルとの比率は 1:1 です。 USDT は最も人気のあるステーブルコインの 1 つとして、世界中の暗号通貨取引で広く使用されています。 USDTの購入または取引に興味のあるユーザーにとって、信頼性が高く安全な取引プラットフォームを選択することが重要です。以下は、最適なプラットフォームを選択するのに役立つ、USDT 取引プラットフォーム ソフトウェア アプリのトップ 10 のランキングです。 1. Binance Binance は、幅広いユーザーベースと多様な取引種類を備えた世界最大の暗号通貨取引プラットフォームの 1 つです。人気の USDT 取引プラットフォームとして、Binance はユーザーの取引の安全性と利便性を確保するために設計されたさまざまな取引ツールと機能を提供します。 2.フォビG

独占公開! Snapdragon プロセッサの最新ランキング 独占公開! Snapdragon プロセッサの最新ランキング Mar 21, 2024 pm 06:36 PM

独占公開! Snapdragonプロセッサの最新ランキング スマートフォンなどのモバイル機器の急速な発展に伴い、モバイル機器のコアチップであるプロセッサも常に進化し、アップグレードされています。クアルコムの Snapdragon プロセッサは、市場で最も人気のあるプロセッサの 1 つとして大きな注目を集めています。 Snapdragon プロセッサは、その優れたパフォーマンス、消費電力制御、高い統合性により、モバイル デバイス プロセッサ市場で常に地位を占めてきました。では、数あるSnapdragonプロセッサの中で、どれが一番優れているのでしょうか?この記事では、Snapdragon プロセッサの秘密を明らかにします。

Vue統計グラフのランキング・比較機能の実装 Vue統計グラフのランキング・比較機能の実装 Aug 26, 2023 am 09:45 AM

Vue 統計グラフのランキングおよび比較機能は、データ視覚化の分野で実装されており、統計グラフはデータを直感的かつ明確に表示する方法です。人気のあるフロントエンド フレームワークとして、Vue はさまざまなチャートを実装するための豊富なツールとコンポーネントを提供します。この記事では、Vueを使って統計グラフのランキングや比較機能を実装する方法を紹介します。始める前に、Vue と関連するチャート ライブラリをインストールする必要があります。豊富な種類のグラフと対話型関数を提供するグラフ作成ライブラリとして Chart.js を使用します。 C は次のコマンドでインストールできます。

See all articles