ホームページ  >  記事  >  バックエンド開発  >  個別と結合が同時に存在する場合に個別に失敗する問題を解決する_PHP チュートリアル

個別と結合が同時に存在する場合に個別に失敗する問題を解決する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:05:531287ブラウズ

$sql = 'pk_groupbuy gbからdistinct(ontopid),gb.idをidとして、f.idをfidとして、g.idをgidとして、g.*,gb.*,f.*を選択します

o.ontopid=gb.id で pk_ontop に o として参加したままにしておきます

gb.goodsid=g.id および g.status=2 および g.invalid>UNIX_TIMESTAMP() で pk_goods g を結合したままにしておきます

gb.fastgroupbuyid=f.id で pk_fastgroupbuy f に参加したままになりました

('.$arr_str.') と (gb.status="2" または gb.status="3") の gb.id の場所

および gb.endtime>UNIX_TIMESTAMP() および gb.starttime

グループ onid 制限 $start,$num";

return TableSystem::query($sql);

変数の説明: $arr_str は、pk_groupbuy の主キー ID で構成される配列、explode 関数によって取得された文字列です。 , $ Start, $ num はクエリの開始レコード番号とクエリ対象のレコード数です。

問題の説明: pk_ontop テーブルの Ontopid が重複しているため、記録できません

例: pk_ontop でその日のトップの ontopid、つまり製品 ID のみをクエリする必要があり、他の製品情報は必要ありません。クエリで見つかった ontopid が重複している場合は、削除することで問題を解決できます。配列の繰り返し要素ですが、対応する製品 ID と他の関連テーブルの情報をクエリし、先頭テーブルの開始時刻、ステータス、paixu フィールドなどに従って並べ替えたい場合は、 pk_ontop テーブルでは、以前に解決した重複した問題が再び表示されるため、処理できません。特に API では重複が許可されていません。どうすればよいですか?やり方が分からないので、他の人に教えてもらいました。

$sql = 'SELECT DISTINCT(ontopid),starttime,paixu FROM pk_ontop ORDER BY starttime DESC,STATUS ASC,paixu ASC LIMIT 17';

$arr = TableSystem::query($sql);

foreach($arr as $key=>$val){
$topids[$key] = $val['ontopid'];
}
$arr_str = implode(',',$topids);
$arr1 = TableSystem::query($sql);

$sql = 'gb.local,f.phone,f.shopname を fshopname,gb.maxnum,gb.intro,gb.buynum,g.pic,f.googleaddress,gb.goodsclassid,gb.sellerid,f として選択します。 img,gb.province,gb.city,gb.id,gb.title,g.pic,gb.starttime,
      pk_group から gb.endtime,gb.price,gb.goodsprice gb を購入
      left join pk_goods g on gb.goodsid=g.id and g.status=2 and g.invalid > UNIX_TIMESTAMP()
      left JOIN pk_fastgroupbuy f ON f.id=gb.fastgroupbuyid
      ここで、(gb.status="2" または gb.status="3") および gb.endtime > UNIX_TIMESTAMP()
      および gb.starttime    
    $arr2 = TableSystem::query($sql);
    foreach($arr2 as $key=>$val){
     $local[$val['id']] = $val['local'];
     $phone[$val['id']] = $val['phone'];
     $fshopname[$val['id']] = $val['fshopname'];
     $maxnum[$val['id']] = $val['maxnum'];
     $intro[$val['id']] = $val['intro'];
     $buynums[$val['id']] = $val['buynum'];
     $fgoogleaddresss[$val['id']] = $val['googleaddress'];
     $goodsclassid[$val['id']] = $val['goodsclassid'];
     $sellids[$val['id']] = $val['sellerid'];
     $provices[$val['id']] = $val['province'];
     $citys[$val['id']] = $val['city'];
     $titles[$val['id']]= $val['title'];
     $pics[$val['id']] = $val['pic'] ? $val['pic'] : $val['img'];
     $starttimes[$val['id']] = $val['starttime'];
     $endtimes[$val['id']] = $val['endtime'];
     $prices[$val['id']] = $val['価格'];
     $goodsprices[$val['id']] = $val['goodsprice'];
    }
    unset($arr2);
    foreach($arr1 as $key=>$val){
     $list[$key]['id'] = $val['ontopid'];
     $list[$key]['province'] = $provices[$val['ontopid']];
     $list[$key]['city'] = $citys[$val['ontopid']];
     $list[$key]['title'] = $titles[$val['ontopid']];
     $list[$key]['pic'] = $pics[$val['ontopid']];
     $list[$key]['starttime'] = $starttimes[$val['ontopid']];
     $list[$key]['endtime'] = $endtimes[$val['ontopid']];
     $list[$key]['price'] = $prices[$val['ontopid']];
     $list[$key]['goodsprice'] = $goodsprices[$val['ontopid']];
     $list[$key]['sellerid'] = $sellids[$val['ontopid']];
     $list[$key]['fgoogleaddress'] = $fgoogleaddresss[$val['ontopid']];
     $list[$key]['goodsclassid'] = $goodsclassid[$val['ontopid']];
     $list[$key]['buynum'] = $buynums[$val['ontopid']];
     $list[$key]['intro'] = $intro[$val['ontopid']];
     $list[$key]['maxnum'] = $maxnum[$val['ontopid']];
     $list[$key]['fshopname'] = $fshopname[$val['ontopid']];
     $list[$key]['fphone'] = $phone[$val['ontopid']];
     $list[$key]['local'] = $local[$val['ontopid']];
    }
    $list を返します;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630743.html技術記事 $sql = 'distinct(ontopid),gb.id as id,f.id as fid,g.id as gid,g.*,gb.*,f.* from pk_groupbuy gb left join pk_ontop as o on o を選択します。 ontopid=gb.id left join pk_goods g on gb.goodsid=...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。