[PHP] Postcode check script, hulp nodig

Pagina: 1
Acties:
  • 797 views sinds 30-01-2008

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Het volgende is er aan de hand,
Men vult een postcode in en vervolgens krijgt men de gegevens voor de contact persoon in die regio te zien. Postcodes lopen bv van 5600 t/m 5799 voor contact persoon 01 en 6200 t/m 6499 voor contact persoon 2 alles wat daar buiten valt heeft geen ondersteuning.
Wat mijn scripie nu doet is, alleen enkele postcodes herkent hij dus moet ik ze allemaal invoeren bv 5600, 5601, 5602 enz. moet toch kunnen met iets als "5600 to 5799". En hij moet 2 of meerder antwoorden kunnen geven, als ik nu het php script kopieer en onder elkaar zet en de postcodes van het 2e script verander naar die van contact persoon 02 dan zie je bij een postcode check dit staan:
"'Contact persoon 01Wij bieden geen ondersteuning in dit gebied" er moet natuurlijk maar 1 uitkomst uit komen.

wie kan mij hierbij helpen??

HTML code:

HTML:
1
2
3
<form action="verwerk.php">
<INPUT TYPE="text" NAME="postcode"> 
</form>



PHP code (verwerk php file):

PHP:
1
2
3
4
5
6
7
8
<?php
$postcodes = array(1337, 1338, 1339);
if (in_array($_GET['postcode'], $postcodes)) {
echo 'Wij bieden geen ondersteuning in dit gebied';
} else {
echo 'Contact persoon 01';
}
?>

www.Qbox.nl


Verwijderd

controleer dan gewoon als $postcode >= '5600' && $postcode <= '5799'

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je kunt toch een array of whatever maken met van én tot waardes? Of, als ze aansluiten, alleen de beginpunten? Dan kun je daarna prima met een if ($postcode>=van && $postcode<tot) de juiste postcode erbij zoeken. Redelijk basic hoor.

De code die je nu hebt slaat nergens op; zeker niet als je niet ook nog een array gaat hebben met andere contactpersonen; of wou je voor iedere contactpersoon zo'n blok code nemen?

[ Voor 33% gewijzigd door RobIII op 31-07-2007 11:48 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Yo-han
  • Registratie: December 2001
  • Laatst online: 02-10 14:12

Yo-han

nope.

Probeer het eens met een array waarin je de naam van de contactpersoon opslaat en de min en max postcode. Daarna loop je door die array met de ingevoerde waarde door de gebruiker en kijk je of je een match heb met min >= waarde && max <= waarde.

[ Voor 0% gewijzigd door Yo-han op 31-07-2007 11:47 . Reden: (@*#!@ ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

En wat heb je zelf al geprobeerd? Nu dump je een vraag en hoop je dat wij het voor je gaan oplossen. We gaan er hier in PRG vanuit d tje zelf al wat hebt geprobeerd en dat je ook aangeeft wat je nu precies hebt geprobeerd en wat daar niet mee lukte. Deze informatie mist nu volledig.

Je zult je code wat om moeten bouwen zodat je per contactpersoon kan bijhouden welke postcode gebieden ze ondersteunen. Vervolgens per contactpersoon controleren en alleen als geen enkel contactpersoon de melding geven dat het gebied niet ondersteunt word bijv. door een variable voor de checks op false te zetten en deze variable op true te zetten zodra een check voor een contactpersoon lukt. Redelijk simpel lijkt me?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Verwijderd schreef op dinsdag 31 juli 2007 @ 11:45:
controleer dan gewoon als $postcode >= '5600' && $postcode <= '5799'
Misschien vergeten te vermelden, maar ik ben een beginner met php :D misschien iets meer uitleg?

Maar bedankt voor je snelle reactie!

www.Qbox.nl


Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$x=0;
for ($i=5600;$i<5800;$i++)
{
$postcodes[$x] = $i;
$x++;
}

if (in_array($_GET['postcode'], $postcodes))
{
echo 'Wij bieden geen ondersteuning in dit gebied';
}
else
{
echo 'Contact persoon 01'; 
}
?>

Alleen zelf nog iets creatiefs bedenken hoe je een bepaalde contactpersoon aan een postcode koppelt. Ik heb wel een idee, maar probeer het eerst zelf maar. :)

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
"'Contact persoon 01Wij bieden geen ondersteuning in dit gebied" er moet natuurlijk maar 1 uitkomst uit komen.
Met een if-else constructie kun je dat al bijna niet verkeerd doen toch.
En verder gewoon zoals maxi-pilot zegt denk ik :?

* SWINX ziet het probleem niet echt...

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
:X :D
Als je per-sé in_array wil gebruiken is dit misschien wel de way-to-go, maar iets zegt me dat PHP dat ook beter anders kan :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Voordat we echt een klant en klare oplossing gaan krijgen: Mocht je dat willen geven geef dan minstens een nette uitleg wat er nu precies gebeurd en waarom anders leert de TS er niks van. Of geef pseudo code of nette tekst en uitleg wat er nu moet gebeuren zodat het zelf gemaakt kan worden.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

RobIII schreef op dinsdag 31 juli 2007 @ 11:49:
[...]

:X :D
Als je per-sé in_array wil gebruiken is dit misschien wel de way-to-go, maar iets zegt me dat PHP dat ook beter anders kan :P
Er zijn meerdere wegen die naar Rome leiden. Aangezien TS begonnen is met een array, was ik er op door gegaan. Zelf zou ik niet voor een array kiezen, want het is zinloos geweld om duizenden variabelen op te slaan. Maar goed, dat terzijde.

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 01-12 13:11
Inderdaad. Iets in de trant van;
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
// Overzicht van de contactpersonen per postcode-reeks
$contactpersonen = array(
   array(
      "contactpersoon" => "01",
      "postcodeVan" => 5000,
      "postcodeTot" => 5650
   ),
   array(
      "contactpersoon" => "02",
      "postcodeVan" => 5651,
      "postcodeTot" => 6000
   )
);

// Lege array warin gevonden contactpersonen worden onthouden
$personen = array();

// Door lijst met contact personen lopen
foreach($contactpersonen as $contactpersoon) {
   if($_POST['postcode'] >= $contactpersoon['postcodeVan'] && $_POST['postcode'] < $contactpersoon['postcodeTot']) {
      // Ingevoerde postcode valt in de reeks van dit contactpersoon; persoon onthouden
      $personen[] = $contactpersoon['contactpersoon'];
   }
}

echo "De contactpersoon/personen:<br>";
if(sizeof($personen) > 0) {
   print_r($personen);
} else {
   echo "die zijn er niet.";
}

[ Voor 21% gewijzigd door frickY op 31-07-2007 11:53 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 31 juli 2007 @ 11:50:
[...]

Er zijn meerdere wegen die naar Rome leiden. Aangezien TS begonnen is met een array, was ik er op door gegaan. Zelf zou ik niet voor een array kiezen, want het is zinloos geweld om duizenden variabelen op te slaan. Maar goed, dat terzijde.
Dat zet je toch alleen de begin (en evt. eind) cijfers van de ranges in de array? :X
Ik ben geen PHP-er maar de post hierboven bijvoorbeeld ziet er stukken zinniger uit.

Ik zou trouwens zelf voor een database ofzo gaan, anders moet je bij iedere scheet je code in duiken.

[ Voor 17% gewijzigd door RobIII op 31-07-2007 11:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Creepy schreef op dinsdag 31 juli 2007 @ 11:47:
En wat heb je zelf al geprobeerd? Nu dump je een vraag en hoop je dat wij het voor je gaan oplossen. We gaan er hier in PRG vanuit d tje zelf al wat hebt geprobeerd en dat je ook aangeeft wat je nu precies hebt geprobeerd en wat daar niet mee lukte. Deze informatie mist nu volledig.

Je zult je code wat om moeten bouwen zodat je per contactpersoon kan bijhouden welke postcode gebieden ze ondersteunen. Vervolgens per contactpersoon controleren en alleen als geen enkel contactpersoon de melding geven dat het gebied niet ondersteunt word bijv. door een variable voor de checks op false te zetten en deze variable op true te zetten zodra een check voor een contactpersoon lukt. Redelijk simpel lijkt me?
Als je het zo zegt klinkt het redelijk simpel, maar ik weet zelf niet echt hoe ik zoiets moet uitvoeren. Maar ik zal de reacties hierboven ten harte nemen (bedankt) en wat gaan proberen zodat jullie kunnen zien wat ik gedaan heb, en waar het fout gaat.

Thx

www.Qbox.nl


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Ok, that's it. De vraag is al redelijk basic en alsnog komen er kant en klare oplossing binnen. 1 op 1 je vraag dumpen is al niet de bedoeling maar 1 op 1 een volledige oplossing geven rijp voor kopieren en plakken *zonder* verdere uitleg ook niet.

@cdrwin: ik zie je laatste antwoord pas na het sluiten van dit topic. Zo moeilijk is het echt niet maar je hebt wel wat basiskennis van PHP nodig. Dat je dat nog niet hebt is niet erg, maar dat je niet de moeite lijkt te willen doen om het te leren is dat eigenlijk wel. Een vraag zoals deze kan in principe prima maar wel met extra informatie over de zaken die je nu zelf hebt geprobeerd en wat daar dan niet mee lukte. Zie ook Programming Beleid - De Quickstart voor wat we nu precies in een topicstart willen zien.

[ Voor 53% gewijzigd door Creepy op 31-07-2007 11:57 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.