並べ替えの問題
はこれです。ビデオには複数のプレーヤー アイコンがあり、各アイコンには対応する再生アドレスがあります。
データベース テーブルのフィールドは次のとおりです
vod_pic varchar(200) not null、
vod_reurl varchar(1000) not null、
再生アイコンは $$$ で区切られています。 youku$$ $tudou など
www.youku.com$$$www.toudou.com のように、再生アドレスは $$$ で区切られています
保存される情報は 1 対 1 に対応しています-one、
ここまで述べたので、本題に入りましょう
フロントページに表示される順序を制御する関数をバックグラウンドで記述したいと思います(ループを使用し、フロント ページに出力するため、デフォルトの並べ替えはデータベース内のデータが保存される順序になります)。
ヒーロー達から何をすべきかアドバイスをお願いします。
ビジネス要件により、たとえば、tudou を 1 位にランク付けしたい場合は、toudou アイコンを持つすべての動画が 1 位にランクされる必要があります。
これはどうすればよいですか?
コードを使用してバックグラウンドでデータ ストレージの場所を操作し、順序を変更する予定です。しかし、これは失敗する可能性が高いです。
英雄たちにヒントを教えてもらいたいです。
-----解決策---------------------------- -
並べ替えに使用されるフィールドをもう 1 つ追加できます。
フロントエンドでループを使用するのは簡単ではありませんか?
ループ時にフィールドを追加する
------解決策------------------
を並べ替えるアルゴリズムを書くだけです <?php $a='youku$$$tudou';//vod_pic フィールド $b='www.youku.com$$$www.tudou.com';//vod_reurl フィールド $a_arr=explode('$$$',$a); $b_arr=explode('$$$',$b); $a_tudouarr=array("tudou"); $b_tudouar=array("www.tudou.com"); if(in_array("tudou",$a_arr)){ $a_arr = array_merge($a_tudouarr, array_diff($a_arr, $a_tudouarr)); $b_arr = array_merge($b_tudouarr,array_diff($a_arr, $b_tudouarr)); } print_r($a_arr);//新しい配列をソートし、tudou フィールドを最初にして、ループアウトします。 print_r($b_arr);//新しい配列をソートし、tudou フィールドを最初にして、それをループアウトします。 ?> <br><font color="#e78608">------解決策------------------</font><br>私のアルゴリズムは、再注文を支援するものです。金額と何の関係があるのですか!試してみることができます! <br><font color="#e78608">------解決策---------</font><br>データベースを使用して実装します。取り出してみてください、素晴らしいじゃないですか。 <br><font color="#e78608">------解決策---------</font><br>確かにデータベースを使用することは可能です。交換フィルターそれだけです <br><font color="#e78608">------解決策------------------</font><br>データの整理方法を変更してください。 <br>vod_pic と vod_reurl を 1 対 1 に対応させてください <br> このようにするのではなく <br> <br> 現在のデータ編成方法では、データベースのストレージ領域を想像どおりに節約できません <br> 逆に、それは無駄です 多くのプログラムとフォームのスペースと時間を無駄にしました <br><br> <div class="clear"></div>