[php/mySql] postcode's filteren, hoe?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb al een tijdje gezocht in de archieven, maar niet precies gevonden wat ik zocht.


Ik heb een database vol met persoonsgegevens, nu wil ik kunnen zoeken op postcode. Ik heb per regio een postcode boven- en ondergrens.


De postcode staat in de database als een text, met de cijfers en de letters aan alkaar. Hier kan ik helaas niets aan veranderen.


Voor zover ik het zelf kan bedenken moet ik de postcode's die ik uit de database haal opbreken in cijfers en letters en dan kijken of de cijfers binnen de boven en ondergrens vallen. Nu weet ik alleen niet hoe ik die cijfers van de letters kan scheiden....
Of hebben jullie een beter/sneller idee?


Alvast bedankt

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 00:18
substr? reguliere expressies? Dat soort dingen zou 't mee kunnen :)

|>


Acties:
  • 0 Henk 'm!

  • seweso
  • Registratie: Augustus 2003
  • Laatst online: 04-04-2018

seweso

de mouw is uit de aap

Je hoeft de letters en cijfers in elk geval niet te splitsen, je kunt namelijk gewoon strings met elkaar vergelijken (dat doen wij namelijk ook).


want "6666FG" < "6666FH" etc.

seweso's blog


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

is voor SQL de optie BETWEEN geen mogelijkheid?


BETWEEN


code:
1
2
3
select blaat blaat
from blaat
BETWEEN  $min AND $max



die $min en $max spreken neem ik aan voorzichzelf

[ Voor 78% gewijzigd door WPN op 30-08-2004 15:07 ]

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Acties:
  • 0 Henk 'm!

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 19-09 16:51

LauPro

Prof Mierenneuke®

Blijkbaar werkt het met strings; anders zou je een regexp moeten maken. Te beginnen met dit bijvoorbeld: [0-9]{4,4}[A-Z]{2,2}

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

Mierenneuke®: [0-9]{4,4}[A-Z]{2,2}
Waarom ",4" en ",2"? :?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

De meeste DBMS-en (MySQL geloof ik ook) hebben zelf functies voor het verkrijgen van substrings, die je weer kan casten naar integers, en van daaruit vergelijken met het getal dat jij binnenkrijgt van de gebruiker. Er komt dus vrijwel geen PHP bij kijken. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Heb zelf ook met dit probleem te maken gehad tijdens het bouwen van een dealerlocator (waarmee met dealers kon worden gezocht op basis van de postcode).


Ik heb dit toen opgelost met reguliere expressies in een query:


http://dev.mysql.com/doc/mysql/en/Regexp.html

Acties:
  • 0 Henk 'm!

  • creative8500
  • Registratie: September 2001
  • Laatst online: 01-02 14:14

creative8500

freedom.

Verwijderd schreef op 30 augustus 2004 @ 18:56:
Heb zelf ook met dit probleem te maken gehad tijdens het bouwen van een dealerlocator (waarmee met dealers kon worden gezocht op basis van de postcode).


Ik heb dit toen opgelost met reguliere expressies in een query:


http://dev.mysql.com/doc/mysql/en/Regexp.html
En, wat was daar de performance van, ten opzichte van substring-methoden?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

creative8500 schreef op 30 augustus 2004 @ 19:16:
[...]
En, wat was daar de performance van, ten opzichte van substring-methoden?
Waarschijnlijk dubbel zo traag. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1