Ik ben bezig met een offerte website waar een consument offertes kan ontvangen van bedrijven in een straal van 20 km op basis van de latitude en longitude.
De consument heeft tijdens het aanvragen de optie om 3 checkboxes te selecteren:
Garantie,
Leentoestel,
Klaar terwijl u wacht service.
De code om de klanten op te halen binnen 20 km heb ik al en werkt perfect maar om enkel de klanten te selecteren die aan de aanvraag eisen voldoen heb ik meer moeite mee. Ik hoop dat ik dit rechtstreeks in de sql query kan doen, alle kolommen die bovenstaand genoemd zijn staan in dezelfde tabel "klanten".
Dit is de code voor enkel de klanten in 20 km straal op te halen ,ik wil graag ook de opties erin verwerken:
<?php
$tableName = "klanten";
$origLat = $sLatitude;
$origLon = $sLongitude;
$dist = 20 ; // This is the maximum distance (in miles) away from $origLat, $origLon in which to search
$query = "SELECT *, 6371 * 2 *
ASIN(SQRT( POWER(SIN(($origLat - abs(latitude))*pi()/180/2),2)
+COS($origLat*pi()/180 )*COS(abs(latitude)*pi()/180)
*POWER(SIN(($origLon-longitude)*pi()/180/2),2)))
as distance FROM $tableName WHERE
longitude between ($origLon-$dist/abs(cos(radians($origLat))*69))
and ($origLon+$dist/abs(cos(radians($origLat))*69))
and latitude between ($origLat-($dist/69))
and ($origLat+($dist/69))
having distance < $dist ORDER BY distance limit 100;";
$result = $db->query($query);
while ($rows = mysqli_fetch_assoc($result))
{
// Hier binnen zijn de dichtsbijzijnde bedrijven in 20 km straal.
}
?>