Witam,
mam zapytanie zwracające rekordy z bazy - działa dobrze ... (poniżej kod)
pytanie brzmi - w jaki sposób zwrócić wartość ilości wypisanych rekordów - krótko mówiąc, zamiast je wypisywać - to jak je policzyć?
---
$sql = $wpdb->prepare("
SELECT a.*,
(max_people_per_vehicle - booked_shared_seats) available_seats,
FLOOR((((('1' - private_bookings)*max_people_per_vehicle) - booked_shared_seats) / max_people_per_vehicle)) available_full_vehicles
FROM
(
SELECT availability.*,
(
SELECT IFNULL(SUM(people_count), 0) FROM " . TRANSFERS_BOOKING_TABLE . "
WHERE is_private=0 AND availability_id = availability.Id AND DATE(booking_datetime)=DATE(%s) "
. ($transfers_plugin_globals->use_woocommerce_for_checkout() ? (empty($completed_statuses_str) ? '' : " AND woo_status IN (" . $completed_statuses_str . ")") : '') .
" ) booked_shared_seats, ", $date);
$sql .= $wpdb->prepare(" (
SELECT IFNULL(COUNT(*), 0) FROM " . TRANSFERS_BOOKING_TABLE . "
WHERE is_private=1 AND availability_id = availability.Id AND DATE(booking_datetime)=DATE(%s) "
. ($transfers_plugin_globals->use_woocommerce_for_checkout() ? (empty($completed_statuses_str) && $transfers_plugin_globals->use_woocommerce_for_checkout() ? '' : " AND woo_status IN (" . $completed_statuses_str . ")") : '') .
" ) private_bookings,", $date);
$sql .= " IFNULL((
SELECT MIN(transport_type_max_people_per_vehicle.meta_value)+0 max_people_per_vehicle
FROM $wpdb->postmeta transport_type_max_people_per_vehicle
WHERE transport_type_max_people_per_vehicle.post_id = availability.transport_type_id AND transport_type_max_people_per_vehicle.meta_key='_transport_type_max_people_per_vehicle'
), 0) max_people_per_vehicle
FROM " . TRANSFERS_AVAILABILITY_TABLE . " availability
WHERE 1=1 ";
$sql .= $wpdb->prepare(" AND (availability.destination_from_id=%d OR availability.destination_from_id=0) ", $destination_from_id);
$sql .= $wpdb->prepare(" AND (availability.destination_to_id=%d OR availability.destination_to_id=0) ", $destination_to_id);
$sql .= $wpdb->prepare(" AND ( DATE(%s) >= DATE(availability.start_datetime) AND DATE(%s) <= DATE(availability.end_datetime)) ", $date, $date);
$sql .= " AND ( ";
$sql .= $wpdb->prepare(" (availability.entry_type='daily' AND availability.slot_minutes >= %d) OR ", $date_slot_minutes);
$sql .= " (availability.entry_type='byminute') OR ";
$sql .= $wpdb->prepare(" (availability.entry_type='weekly' AND availability.day_index=%d AND availability.slot_minutes >= %d) OR ", $date_day_of_week, $date_slot_minutes);
$sql .= $wpdb->prepare(" (availability.entry_type='monthly' AND availability.day_index=%d AND availability.slot_minutes >= %d) ", $date_day_of_month, $date_slot_minutes);
$sql .= $wpdb->prepare(")
HAVING (availability.entry_type='byminute') OR booked_shared_seats < (('1' - private_bookings)*max_people_per_vehicle)
) a
HAVING (entry_type='byminute') OR available_seats >= %d
ORDER BY slot_minutes ASC
", $people);
return $wpdb->get_results($sql);
}