0

我想订购配置良好的活动,我面临的是,

我订购我的活动,如果它们可以出售,我会先展示它们,然后我会展示那些可以预订但不能出售的活动,但是当人们预订时,我会为他们打开我的活动 3-4 天只有预订的人才能购买该活动,

我想要的很简单,我想展示他们已经预订的活动,并且活动只对预订的人开放出售;首先是对所有人开放的,然后是因为仅供预订而无法购买的

例如,A 是对所有人开放的活动,B 是开放预订的,C 只能由预订的人购买,

我的查询返回的是:A - B - C

我想要的是:C-A-B

我试图更改查询,但我知道我在那里犯了一个错误

这是我的代码:

try
{
$event_query = "SELECT * FROM `events` ORDER BY `reservation` ASC, `eventdate` ASC";
$event_query_check = $db->prepare($event_query);
$event_query_check->execute();
$ac = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
while($fetch = $event_query_check->fetch (PDO::FETCH_ASSOC) ){ 

// fetching the info exc in here


try {
$q = "SELECT * FROM `event_reservation` WHERE `attendee_id` = :attendee_id AND `event_id` = :event_id";
$check_query = $db->prepare($q);
$check_query->bindParam(':attendee_id', $userid, PDO::PARAM_INT);
$check_query->bindParam(':event_id', $event_id, PDO::PARAM_INT);
$check_query->execute();
$n2 = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
}
catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}

// not working part of the code

 if($n2){
$event_query = "SELECT * FROM `members` ORDER BY `reservation_open_to_sell` DESC, `reservation` ASC, `eventdate` ASC";
}

// ends here

} // end of while
} // end of try
catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}

谢谢

4

1 回答 1

1

你可以这样做:

order by case when reservation='c' then 1 
              when reservation='a' then 2
              when reservation='b' then 3 end
于 2012-11-09T21:39:43.990 回答