Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie rekordów
Leon07
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 6.09.2017

Ostrzeżenie: (0%)
-----


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);
}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Dla wstawianego kodu uzywaj BBCODE
2) Patrz prosze gdzie piszesz. Problem nie ma zadnego zwiazku z OOP. Przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Neutral
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

Ostrzeżenie: (0%)
-----


https://stackoverflow.com/questions/607264/...-query-returned

Użyj do tego funkcji FOUND_ROWS(). Po SELECT pobierającym dane z tabeli, daj pod spodem tę funkcję.
Dla przykładu (for example):

Kod
SELECT * FROM table_name;
FOUND_ROWS();

+--------------+
| FOUND_ROWS() |
+--------------+
| 17 |
+--------------+


https://dev.mysql.com/doc/refman/5.7/en/inf...tion_found-rows

Ten post edytował Neutral 10.09.2017, 12:53:39
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:51