[Alg] - Huisnummer toevoeging controle

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Goedemiddag,

Voor de controle van reeds bestaande adresgegevens in een database, wil ik graag ingevoerde adresgegevens (met name postcode/huisnummer/toevoeging) zoveel mogelijk standaardiseren bij opslaan in de database.

Omdat de gegevens in allerlei verschillende vormen worden opgeslagen, maak ik een aparte tabel die puur voor de controle van dubbele gegevens dient. In deze tabel zijn de opgeslagen gegevens derhalve beperkt tot die informatie die nuttig is voor controle. Zoals gezegd is dat in eerste instantie postcode/huisnummer/toevoeging.

Met betrekking tot het 'toevoeging' gedeelte zou ik graag even wat feedback krijgen. Mijn functie voor validatie van de toevoeging, is nu ongeveer als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
    /**
     * Validates the given (string) $value as a valid housenumber suffix:
     * - If the suffix contains non alphabet-chars or digits, these are removed.
     * - If the suffix is given in roman numerals (i-x), then the int value is
     *   calculated.
     * - If the suffix contains 'rd', 'rood', 'zw', 'zwart' or the like, then
     *   the suffix is returned as 'rood' cq. 'zwart' as lowercase string.
     * - If the suffix contains 'a', 'b', etc, then the suffix is returned in
     *   lowercase.
     * 
     * Returns the string value of the housenumber suffix if it could be
     * successfully validated.
     * Returns an empty string if no valid suffix could be extracted from the
     * given string.
     *  
     * @param       string  $value      The value to validate as house number suffix.
     * @param       bool        [$apoh]     (As Part Of Housenum) the housenumber is given
     *                                                      and the the suffix should be distilled from it.
     * @return      string              validated suffix.
     * @access  protected
     */
    protected function _validateHousenumSuffix($value, $apoh = false) {
        global $d;
        
        if ( $apoh ) {
            $housenum = strval(intval($value));
            $value = substr($value, strlen($housenum));
        }
        
        $matches = null;
        if ( !preg_match('/([0-9a-zA-Z]){1,10}/', $value, $matches) ) {
            return '';
        }
        $value = trim(strtolower(strval($matches[0])));
        
        // If $value is a number, return the number.
        if ( strval(intval($value)) === strval($value) ) return strval(intval($value));

        // Translate rood/zwart
        if ( $value == 'rd' || $value == 'rood' )       return 'rood';
        if ( $value == 'zw' || $value == 'zwart' )  return 'zwart';

        // Translate Roman Numerals.
        if ( $value == 'x' )        return '10';
        if ( $value == 'ix' )       return '9';
        if ( $value == 'viii' ) return '8';
        if ( $value == 'vii' )  return '7';
        if ( $value == 'vi' )       return '6';
        if ( $value == 'v' )        return '5';
        if ( $value == 'iv' )       return '4';
        if ( $value == 'iii' )  return '3';
        if ( $value == 'ii' )       return '2';
        if ( $value == 'i' )        return '1';

        // All other cases: return the lowercased value.
        return $value;
    } // _validateHousenumSuffix()


Zijn er nu belangrijke manieren waarop een toevoeging kan worden gegeven, die ik nu over het hoofd zie?

Acties:
  • 0 Henk 'm!

  • dik_voormekaar
  • Registratie: April 2003
  • Laatst online: 12:07
Kijk maar eens op Wikipedia: Huisnummer

Acties:
  • 0 Henk 'm!

  • semicolon
  • Registratie: Mei 2004
  • Niet online
Die wikipedia pagina die dik_voormekaar noemt ziet er uitgebreid genoeg uit voor je doel denk ik.

maar wat ik eigenlijk wou zeggen, beetje offtopic, maar het is meer formatting dan validating wat je zo doet hé.. Je herschrijft het gewoon naar jou eigen formaat, of maakt het leeg als het niet correct is.

:D/-<


Acties:
  • 0 Henk 'm!

  • zaiziks
  • Registratie: Juli 2009
  • Laatst online: 22-07 18:06

zaiziks

Da da da

Hebben hier nog niet zo lang geleden een projectje gehad dat onder andere adresgegevens doorsluisde van systeem A naar B, waar in systeem B een apart veld werd gemaakt voor "huisnummer" en voor "huisnummertoevoeging". Conclusie was dat voor huisnummertoevoegingen enorm irritant zijn om te standaardiseren - denk maar aan Oude Kraan 24 III A, Boulevard 1945 37, woonboten (Singel 37 TO of nog leuker Singel 37 AB TO).

La la la la la la la la la


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Max v W schreef op dinsdag 08 september 2009 @ 12:42:
maar wat ik eigenlijk wou zeggen, beetje offtopic, maar het is meer formatting dan validating wat je zo doet hé.. Je herschrijft het gewoon naar jou eigen formaat, of maakt het leeg als het niet correct is.
Is helemaal niet offtopic. De TS ramt er zijn eigen conventie doorheen terwijl dat zeker niet per se correct is. De romeinse nummering kan gewoon de officiele schrijfwijze zijn bijvoorbeeld.

Als je echt een controle wil doen, moet je er een adressendatabase bij pakken. B)

{signature}


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Misschien een gekke vraag, maar waarom wil je de huisnummer toevoeging standaardiseren?

Volgens mij moet het een vrij veld blijven, aangezien er binnen 1 gemeente niet eens een standaard is om de huisnummers uit te delen. En sommige mensen ook nog eens creatief zijn met hun eigen adres.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik zou niet zomaar gaan rommelen met de invoeren die je binnen hebt gekregen. En bij twijfel zou ik enkel zorgen dat bij huisnummer alles komt te staan ipv gesplitst. Een eigen opsplitsing maken in zulke data levert vrijwel altijd veel fouten op.

Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Ik sluit me aan bij de rest van de posters die zeggen dat je niet zomaar toevoeging moet omvormen. Vooral je omvorming van romeinse nummering naar getallen is fout. Daarnaast zijn letters (niet Romeinse nummers) in principe hoofdletters.

Dus huisnr 1 toevoeging i is iets anders dan huisnr 1 toevoeging I (hoofdletter i). In jouw geval zou daar altijd huisnr 1 toevoeging 1 uitkomen wat in beide gevallen fout is!

Acties:
  • 0 Henk 'm!

Anoniem: 313723

Wat als iemand nou huisnummer XI ingeeft? Dan woont deze persoon op 101?
Volgens mij moet je dit helemaal niet willen. Een apart textveld voor huisnummers en dat maar accepteren.
Rare tekens eruit filteren (of niet accpeteren eigenlijk), mysql_real_escape_string(), that's that.

[ Voor 64% gewijzigd door Anoniem: 313723 op 09-09-2009 18:20 ]


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Sowieso moet je niet iets willen 'standaardiseren' waar geen standaard voor is.

Zo kan je huizen hebben met nummer: 34 a 2 hoog. Wat ga je daarvan maken dan? Of: wat je veel al bij woonboten ziet: overkant of achter als toevoegsel. De boot die dus aan de overkant ligt van nummer X, of achter het huis van nummer X.

Straatnamen zijn wel te standaardiseren, maar ook dat is wel eens lastig. Je weet niet wat voor vage termen sommige mensen gebruiken, of het simpelweg verkeerd overtikken (adreswijziging die niet duidelijk is geschreven).

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 19-07 01:17

Nick_S

++?????++ Out of Cheese Error

Heb je er ook rekening mee gehouden dat een toevoeging ook voor het huisnummer kan staan? Zie ook die wikipedia pagina: Bijv: Steenkade t/o 56 (d.w.z. de woonboot tegenover huisnummer 56)

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'

Pagina: 1