1

現在のコードは過去 7 日間のベット スリップを表示していますが、日付に関係なく過去 7 日間のベット スリップを表示する必要があります。

select 
  betsliphistory.MatchID,Team1.Name as HomeTeam ,
  Team2.Name as AwayTeam, BetSlipID , userid , TipID , 
  matches.ResultTipID ,betsliphistory.`Date`
from betsliphistory
inner join matches on betsliphistory.MatchID = matches.MatchID
inner join teams as Team1 on matches.HomeTeamID = Team1.TeamID
inner join teams as Team2 on matches.AwayTeamID = Team2.TeamID
where userid =".$user." 
  and betsliphistory.`Date` between CURDATE()-7 and CURDATE() 
order by BetSlipID , MatchID;
4

2 に答える 2

2

しかし、日付に関係なく、最後の 7 回のベット スリップを表示する必要があります。

  • 句から日付条件を削除しますWHERE
  • 次のように、上位 7に使用ORDER By BetSlipID DESCします。LIMIT 7BetSlipID

     ... -- Your current query
     WHERE userid = ".$user." 
     ORDER BetSlipID  DESC
     LIMIT 7;
    

注意:この方法のコードは、SQL インジェクションに対して脆弱です。代わりに PDO または準備済みステートメントを使用してください。詳細については、これを参照してください。

于 2012-11-29T09:31:47.937 に答える
0

これを試して::

 select betsliphistory.MatchID,Team1.Name as HomeTeam , 
                      Team2.Name as AwayTeam, BetSlipID , userid , TipID , matches.ResultTipID ,betsliphistory.`Date`
                      from betsliphistory
                      inner join matches on betsliphistory.MatchID = matches.MatchID
                      inner join teams as Team1 on matches.HomeTeamID = Team1.TeamID
                      inner join teams as Team2 on matches.AwayTeamID = Team2.TeamID
                      inner join (Select DISTINCT(BetSlipID) tempBetSlip from betsliphistory where userid =".$user."  order by `Date` limit 7) temp_betHistory on temp_betHistory.tempBetSlip = BetSlipID
                          where userid =".$user." order by `BetSlipID`
于 2012-11-29T09:32:17.720 に答える