Ik ben bezig met het maken van een script voor een veiling site.
Veilingen staan in de tabel 'auctions'. Biedingen staan in de table 'bids'.
Het is mogelijk meerdere items per veiling te veilen (bv. 3 objecten van hetzelfde type). Ook is bij een veiling in te stellen dat deze automatisch opnieuw geveild wordt als er niet het minimumbod geboden is.
Om deze 'sub veilingen' in de database te structureren heb ik een veld genaamd nth_subauction in de tabel bids om aan te geven aan welke sub veiling deze bieding gekoppeld is.
Ik wil nu alle veilingen uit de database selecteren waar nog op geboden kan worden. Het lukt mij echter niet om het gewenste resultaat te bereiken. Ik heb nu de volgende query:
Wat ik met de sub-query wil bereiken is dat het aantal unieke sub-veiling items wordt geteld waar op is geboden. Alleen als deze waarde kleiner is dan num_items (het aantal objecten van dit type beschikbaar) mag de veiling getoont worden.
Ik krijg echter 0 resultaten, terwijl er echt veilingen zijn welke aan de criteria voldoen.
Wat doe ik fout?
Veilingen staan in de tabel 'auctions'. Biedingen staan in de table 'bids'.
Het is mogelijk meerdere items per veiling te veilen (bv. 3 objecten van hetzelfde type). Ook is bij een veiling in te stellen dat deze automatisch opnieuw geveild wordt als er niet het minimumbod geboden is.
Om deze 'sub veilingen' in de database te structureren heb ik een veld genaamd nth_subauction in de tabel bids om aan te geven aan welke sub veiling deze bieding gekoppeld is.
Ik wil nu alle veilingen uit de database selecteren waar nog op geboden kan worden. Het lukt mij echter niet om het gewenste resultaat te bereiken. Ik heb nu de volgende query:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| $result = query(" SELECT * FROM auctions WHERE status = 'active' AND (SELECT count(*) FROM bids WHERE bids.`item-id` = auctions.id) GROUP BY bids.nth_subauction) < num_items AND " . time() . " > start_time AND ((" . time() . " < (start_time + (run_time * num_items))) OR (try_again = '1' AND num_sold < num_items)) ORDER BY (start_time + (CEILING((" . time() . " - start_time) / run_time) * run_time)) ASC LIMIT " . $items_per_page_index); |
Wat ik met de sub-query wil bereiken is dat het aantal unieke sub-veiling items wordt geteld waar op is geboden. Alleen als deze waarde kleiner is dan num_items (het aantal objecten van dit type beschikbaar) mag de veiling getoont worden.
Ik krijg echter 0 resultaten, terwijl er echt veilingen zijn welke aan de criteria voldoen.
Wat doe ik fout?