Zoeken binnen straal van woonplaats

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Stephan Hendrikx

Stephan Hendrikx

07/02/2011 16:24:32
Quote Anchor link
Hallo allemaal,

ik ben bezig een zoekmogelijkheid te creeren waarin je kan zoeken op alle woonplaatsen binnen een straal van de opgegeven woonplaats.

het script om de berekening uit te voeren heb ik, het gaat me meer om de invoeging in de bestaande "uitgebreid zoeken" functie.

Het script hieronder is mijn huidige status, waarbij het er op lijkt dat bij opgave van een 'distance' er geen array aangemaakt wordt met alle mogelijke postcodes. Ik zie niet waar de fout zit in het script, misschien dat iemand me op het juiste pad kan zetten.

Quote:
if (!empty($_SESSION['advs']['country']))
{
if (!empty($_SESSION['advs']['distance']))
{
$z = new zipcode_class;
$zips = $z->get_zips_in_range('Eindhoven', 30, _ZIPS_SORT_BY_DISTANCE_ASC, true);
foreach ($zips as $key => $value) {
$distance[] = $value['distance'];
}
$userjoin = "LEFT JOIN " . $DBPrefix . "users u ON (u.id = au.user)";
$wher .= "(u.country = '" . $distance . "') AND ";
}
else
{
$userjoin = "LEFT JOIN " . $DBPrefix . "users u ON (u.id = au.user)";
$wher .= "(u.country = '" . $system->cleanvars($_SESSION['advs']['country']) . "') AND ";
}
}
 
PHP hulp

PHP hulp

27/11/2024 06:39:07
 
Erik Rijk

Erik Rijk

07/02/2011 16:37:09
Quote Anchor link
echo je query eens, denk dat je het dan wel ziet :)
 
Kris Peeters

Kris Peeters

07/02/2011 17:52:48
Quote Anchor link
Als je merkt dat query's niet doen wat je verwacht, kan je best $sql eens echo'en en in phpMyAdmin copy pasten.
 
Noppes Homeland

Noppes Homeland

07/02/2011 18:25:11
Quote Anchor link
Kris Peeters op 07/02/2011 17:52:48:
Als je merkt dat query's niet doen wat je verwacht, kan je best $sql eens echo'en en in phpMyAdmin copy pasten.


Nee, want phpmyadmin vernaggelt je sql statements, dus om daarin je query te controleren komt je nog geen stap verder.
 
Stephan Hendrikx

Stephan Hendrikx

08/02/2011 13:19:23
Quote Anchor link
Als ik de query echo krijg ik alleen het woord "Array".
 
- SanThe -

- SanThe -

08/02/2011 13:29:53
Quote Anchor link
Dan echo je waarschijnlijk het resultaat en niet de sql van de query.
 
Stephan Hendrikx

Stephan Hendrikx

09/02/2011 10:40:46
Quote Anchor link
Het resultaat van een echo op de query = "Resource id #28".

Daarbij moet gezegd dat deze query bestaat uit meerdere versies, zoals min & max bedrag, zoeknaam, etc.
 
The Force

The Force

09/02/2011 11:36:45
Quote Anchor link
Je moet de echo doen voordat je mysql_query(...) doet. Dan krijg je als het goed is een string met de SQL. In die string staat waarschijnlijk in de laatste WHERE " AND ", wat niet goed is. Of er is iets anders fout.
 
Ozzie PHP

Ozzie PHP

09/02/2011 12:03:08
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($zips as $key => $value) {
  $distance[] = $value['distance'];
}

?>


Hierboven bouw je een array op die je vervolgens hier...

$wher .= "(u.country = '" . $distance . "') AND ";

... in je query stopt. Je zegt hier dus (u.country = 'ARRAY')

Dat gaat niet werken lijkt me zo.
 
Stephan Hendrikx

Stephan Hendrikx

09/02/2011 12:30:41
Quote Anchor link
SELECT au.* FROM WEBID_auctions au LEFT JOIN WEBID_users u ON (u.id = au.user) WHERE au.suspended = 0 AND (au.closed = '0') AND (u.country = 'Array') AND au.starts <= 1297250995 ORDER BY au.ends ASC LIMIT 0, 20

het query resultaat!

Toevoeging op 09/02/2011 12:31:55:

he Ozzie, wat een vooruitziende blik, hoe herstel ik dit?

Iig ontzettend bedankt voor de hulp!
 
Ozzie PHP

Ozzie PHP

09/02/2011 12:56:20
Quote Anchor link
wat moet er komen te staan op de plek waar nu Array staat?
 
Stephan Hendrikx

Stephan Hendrikx

09/02/2011 13:04:28
Quote Anchor link
Een hele serie aan woonplaatsen, Bijv. zoekopdracht is alles binnen een straal van 30 km van Eindhoven. Dus de array bestaat dan uit Best, Boxtel, Oirschot enz.

Toevoeging op 09/02/2011 13:06:42:

Ik heb ook al geprobeerd:

$distance[] = $value [$zips];
$distance[] = $value [$z];

maar zelfde resultaat, de array wordt volgens mij wel aangemaakt, maar ik krijg hem niet aan de juiste variabele gehangen en getransporteerd naar mijn query.
 
Ozzie PHP

Ozzie PHP

09/02/2011 13:07:59
Quote Anchor link
Zet de complete query eens neer zoals ie volgens jou eruit zou moeten zien.
 
Stephan Hendrikx

Stephan Hendrikx

09/02/2011 14:25:56
Quote Anchor link
Krijg het heen en weer, nu zie ik het, hij haalt de gegevens uit de tabel users terwijl hij het uit de tabel countries moet halen.

Ik ga er mee aan de haal, als ik er niet uit kom meldt ik me weer. Zo zie je maar dat het stellen van de juiste vragen het meest leerzaam is.

Thanks Ozzie.
 
Ozzie PHP

Ozzie PHP

09/02/2011 14:32:49
Quote Anchor link
you're welcome ;-)
 
Stephan Hendrikx

Stephan Hendrikx

10/02/2011 13:36:48
Quote Anchor link
Daar ben ik weer.

Ik heb het nu zo ver dat ik 1 waarde krijg in de query. As ik de volgende zoekopdracht geef (zoeken in 10 kilometer rond Eindhoven:

if (!empty($_SESSION['advs']['distance']))
{
$z = new zipcode_class;
$zips = $z->get_zips_in_range('Eindhoven', 10, _ZIPS_SORT_BY_DISTANCE_ASC, true);

foreach ($zips as $key => $value) {
$woonplaats = $key;
}

$userjoin = "LEFT JOIN " . $DBPrefix . "users u ON (u.id = au.user)";
$wher .= "(u.country = '" . $woonplaats . "') AND ";

}

Krijg ik het volgende resultaat in de query:

SELECT au.* FROM WEBID_auctions au LEFT JOIN WEBID_users u ON (u.id = au.user) WHERE au.suspended = 0 AND (au.closed = '0') AND (u.country = 'Knegsel') AND au.starts <= 1297341101 ORDER BY au.ends ASC LIMIT 0, 20

Hij haalt dus maar 1 waarde uit de database ipv een hele array. Het script om de array te maken is OK. Deze heb ik afzonderlijk van de zoekfunctie getest en geeft alle woonplaatsen binnen een straal van 10 km.

Het probleem zit hem in het doorgeven van de gehele array naar de query.

HELP!!!!!!!
 
Ozzie PHP

Ozzie PHP

10/02/2011 13:55:15
Quote Anchor link
wat zit er in $zips? Kun je die vardumpen?
 
Stephan Hendrikx

Stephan Hendrikx

10/02/2011 14:17:41
Quote Anchor link
Dit zit er in $zips:
array(112) { ["Eindhoven"]=> float(0) ["Gennep"]=> float(4) ["Veldhoven"]=> float(5) ["0Riel"]=> float(5) ["Nuenen"]=> float(6) ["0Best"]=> float(7) ["Waalre"]=> float(7) ["Wilhelminadorp"]=> float(7) ["Geldrop"]=> float(7) ["Budel-Schoot"]=> float(8) ["Breugel"]=> float(8) ["00Son"]=> float(8) ["Wintelre"]=> float(9) ["Knegsel"]=> float(10) ["Heeze"]=> float(10) ["Mierlo"]=> float(10) ["Steensel"]=> float(11) enz.
 
Ozzie PHP

Ozzie PHP

10/02/2011 14:21:28
Quote Anchor link
En wat moet er met die woonplaatsen in de query gebeuren?
 
Stephan Hendrikx

Stephan Hendrikx

10/02/2011 14:23:22
Quote Anchor link
Die moeten gekoppeld worden aan veilingen, dus denk aan uitgebreid zoeken op Marktplaats.nl. Alle veilingen in een straal van 10 km rondom Eindhoven.
 
Ozzie PHP

Ozzie PHP

10/02/2011 14:37:38
Quote Anchor link
Maar hoe moet je query er uitzien... geef eens een voorbeeld van een query met die woonplaatsen erin.
 

Pagina: 1 2 volgende »



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.