我想命令我的事件配置得很好,我面临的是什么,
我订购我的活动,如果它们是开放销售的,我首先展示它们,之后我展示那些可以预订且不能出售的那些,但是当人们预订时,我为他们打开我的活动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__));
}
谢谢
答案 0 :(得分:1)
你可以这样做:
order by case when reservation='c' then 1
when reservation='a' then 2
when reservation='b' then 3 end