Postcodes tonen binnen een bepaalde straal

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Matthias deckers

matthias deckers

06/03/2011 10:28:29
Quote Anchor link
Hallo

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)
PHP script in nieuw venster Selecteer het PHP script
1
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
    }

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
 
PHP hulp

PHP hulp

21/11/2024 19:46:08
 
Joren de Wit

Joren de Wit

06/03/2011 11:49:08
Quote Anchor link
Je query klopt niet, je gebruikt HAVING terwijl je nergens op groepeert. HAVING kun je enkel gebruiken in combinatie met GROUP BY. Als het gewoon een voorwaarde is, voeg dan een extra WHERE clausule toe (vervang HAVING door AND).

Verder zou je er ook verstandig aan doen om variabelen buiten quotes te halen...
 
Matthias deckers

matthias deckers

06/03/2011 12:04:13
Quote Anchor link
mm ja ik wist zelf niet waar op het sloeg aangezien ik dat van een ander heb maar distance bestaat niet als tabel naam voor als ik dat naar AND vervangt als ik dat regeltje gewoon weg doet werkt het maar krijg ik veel te veel resultaten die niet eens in de buurt liggen query zal dus niet echt geschikt zijn

en zo ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
WHERE latitude >= $latitude
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
 
Matthias deckers

matthias deckers

07/03/2011 16:05:43
Quote Anchor link
iemand nog een idee ?
 
Joren de Wit

Joren de Wit

07/03/2011 16:08:05
Quote Anchor link
De kolom 'distance' bestaat niet in je tabel? Waar moet die dan vandaan komen?
 
Matthias deckers

matthias deckers

07/03/2011 16:21:04
Quote Anchor link
die word berekend in query AS distance hoe kan ik afstand nu in database zetten :-)
 
Joren de Wit

Joren de Wit

07/03/2011 16:23:18
Quote Anchor link
In MySQL zul je de hele berekening in de WHERE clausule moeten herhalen, je kunt daar niet de alias gebruiken.
 
Matthias deckers

matthias deckers

07/03/2011 16:39:11
Quote Anchor link
is dat zo ? ok eens testen

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
 
Eric Zeus

Eric Zeus

11/01/2012 16:25:02
Quote Anchor link
welke berekening heb je werkend gekregen?
 
- SanThe -

- SanThe -

11/01/2012 16:40:50
Quote Anchor link
Topic is bijna een jaar oud.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.