Postcodes tonen binnen een bepaalde straal
ik heb al heel veel gezocht ook onder andere in dit forum waar al enkele topics zijn met dit onderwerp toch loop ik nu op vast dat hij geen resultaten wil tonen hij voert het allemaal uit
de query range heb ik gevonden op phphulp
hier onder is staat pagina van hoe ver ik was
http://partyspotter.be/test.php
(plaatsnamen in belgie) database is alleen voor belgie
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$range = "SELECT name,latitude,longitude,
(((acos(sin((52.6833*pi()/180)) * sin((latitude*pi()/180))+cos((52.6833*pi()/180)) * cos((latitude*pi()/180)) * cos(((5.0222- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) AS distance
FROM city
WHERE latitude >= '$latitude'
AND longitude <= '$longitude'
HAVING distance < '$afstand'
ORDER BY distance";
$rangeresult = mysql_query($range) or die(mysql_error()); // query uitvoeren of error tonen
if ($rangeresult && mysql_num_rows($rangeresult) >= 1) // kijken of de query result minsten 1 rij heeft opgeleverd
{
while ($row2 = mysql_fetch_array($rangeresult))
{
echo "Deze regio ligt binnen je geselecteerde range".$row2['name'];
}
} else {
echo '<br /> ERROR : er zijn geen resultaten binnen deze afstand'; // toont error als er niets gevonden is
}
(((acos(sin((52.6833*pi()/180)) * sin((latitude*pi()/180))+cos((52.6833*pi()/180)) * cos((latitude*pi()/180)) * cos(((5.0222- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344) AS distance
FROM city
WHERE latitude >= '$latitude'
AND longitude <= '$longitude'
HAVING distance < '$afstand'
ORDER BY distance";
$rangeresult = mysql_query($range) or die(mysql_error()); // query uitvoeren of error tonen
if ($rangeresult && mysql_num_rows($rangeresult) >= 1) // kijken of de query result minsten 1 rij heeft opgeleverd
{
while ($row2 = mysql_fetch_array($rangeresult))
{
echo "Deze regio ligt binnen je geselecteerde range".$row2['name'];
}
} else {
echo '<br /> ERROR : er zijn geen resultaten binnen deze afstand'; // toont error als er niets gevonden is
}
dit uitvoeren resulteert in dit ERROR : er zijn geen resultaten binnen deze afstand
er komt nog een stuk code boven voor het uithalen van de latitude enzo maar dat werkt perfect dus post ik het er niet bij
Gewijzigd op 06/03/2011 10:30:05 door Matthias deckers
Verder zou je er ook verstandig aan doen om variabelen buiten quotes te halen...
en zo ?
Code (php)
1
2
3
4
2
3
4
WHERE latitude >= $latitude
AND longitude <= $longitude
ORDER BY distance
HAVING MAX(distance) < $afstand ";
AND longitude <= $longitude
ORDER BY distance
HAVING MAX(distance) < $afstand ";
mm krijg ik syntax error
Gewijzigd op 06/03/2011 12:18:57 door matthias deckers
iemand nog een idee ?
De kolom 'distance' bestaat niet in je tabel? Waar moet die dan vandaan komen?
die word berekend in query AS distance hoe kan ik afstand nu in database zetten :-)
In MySQL zul je de hele berekening in de WHERE clausule moeten herhalen, je kunt daar niet de alias gebruiken.
ok die berekening klopt volgens mij niet ik moet al 200km in voeren als afstand om resultaat te krijgen onder 200 zegt het geen resultaat voor deze afstand ik weet het niet meer nu verder zoeken dan maar
edit : ok heb andere berekening gevonden het werkt nu
Gewijzigd op 07/03/2011 20:38:25 door matthias deckers
welke berekening heb je werkend gekregen?
Topic is bijna een jaar oud.