2011-01-29 22 views
0

で私は、次の注文mysqlの結果ループクエリ値

私は「nicedate」の $vote値になります $data1で結果を注文することができる方法
$def = $_GET['def']; if (!$def == 0) {$offset = 'OFFSET '.$def.'';} 
$data1 = mysql_query(
    "SELECT *, DATE(post_modified) as nicedate 
    FROM (`wp_postmeta`) 
    LEFT JOIN (`wp_posts`) ON wp_postmeta.post_id = wp_posts.ID 
    LEFT JOIN (`wp_top_ten`) ON wp_posts.ID = wp_top_ten.postnumber 
    WHERE meta_value='the_value' 
    ORDER BY nicedate DESC LIMIT 16 ".$offset."" 
        ) or die(mysql_error()); 
    while($info = mysql_fetch_array($data1)) 

{ 
    $id = $info['ID']; 
    echo "some stuff"; 
    $data2 = mysql_query(" 
       SELECT SUM(vote) as total_vote, COUNT(*) as total_count 
       FROM (`wp_gdsr_votes_log`) 
       WHERE id='".$id."' AND vote_type='article' 
        ") or die(mysql_error()); 
     while($info = mysql_fetch_array($data2)) 
    {$vote = number_format(
      ($info['total_vote']/$info['total_count']) 
         , 2, '.', ' ');} 
      echo $vote."/5"; echo "some more stuff"; 
} 

をやっていますか?

+2

これはサブクエリではありません。それはループ内で複数のクエリを実行しています。 –

答えて

1

ループの各ラウンド後に移入する配列を作成できます。何かのように($ data1の結果を取得した後):

$ data1の前に空の配列を定義します。

$newarray = array(); 

第二のループでより:

$nicedate = info['nicedate']; 

$newarray[$nicedate] = $vote; 

あなたは、あなたがより自由に並べ替えることができますarray('date'=>'vote', 'date2' => 'vote2',..)を有する終わります。

1

私はあなたのデータを持っていないので、私はそれをテストすることはできませんので、ここに推測です。しかし、理論に基づいて、クエリを組み合わせてそのようにソートできるはずです。

SELECT *, DATE(post_modified) as nicedate, 
    SUM(vlog.vote) as total_vote, COUNT(vlog.*) as total_count 
    (total_vote/total_count) as vote 
    FROM wp_postmeta AS meta 
    LEFT JOIN wp_posts AS posts ON meta.post_id = posts.ID 
    LEFT JOIN wp_top_ten AS tten ON posts.ID = tten.postnumber 
    LEFT JOIN wp_gdsr_votes_log AS vlog ON posts.ID = vlog.id 
    WHERE meta_value='the_value' 
    AND vlog.vote_type='article' 
    GROUP BY vlog.id 
    ORDER BY vote DESC, nicedate DESC 
    LIMIT 16 $offset 

願わくば私はあなたがほしいと思うほど近くにあり、少なくともほとんど動作します。 私はそこに愚かな間違いがあった場合、今はお詫び申し上げます。

気に入ったら自由に編集してください。あなたが変更したものを書き留めておきます。


編集:
1. Gutterballは - 編集ノートを追加しました。

関連する問題