login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Groter getal (Opgelost)

Offline ViXP51 - 29/12/2013 15:52
Avatar van ViXP51Nieuw lid Hallo,

Hoe kan ik in mijn PHPmyadmin een veld maken waar alleen 4 getallen groter dan 2000 moet ingevuld moeten worden? Ik snap dan dat dat moet op zo'n PHP pagina op mijn website. Maar moet je dan voor het veld YEAR gebruiken?

9 antwoorden

Gesponsorde links
Offline Thomas - 29/12/2013 16:10
Avatar van Thomas Moderator Niet per se, een INT veld kan in principe ook.

Het beste wat je kunt doen is in PHP een controle inbouwen die het nummer controleert en bepaalt of het nummer geschikt is om op te slaan.

En als je het de gebruiker gemakkelijk wilt maken maak je een dropdown-menu (select-veld met options). Dan hoeft men ook niets in te typen (met de kans op fouten). Neemt niet weg dat je de waarde moet controleren voordat je deze in de database stopt!
Offline ViXP51 - 29/12/2013 16:17 (laatste wijziging 29/12/2013 16:17)
Avatar van ViXP51 Nieuw lid Bedankt voor uw reactie. Wat als ik het nu wel zo doe dat de gebruiker het zelf moet in typen, en dan dit gebruik:

if(strlen($getal) < 2000){

$errors = $errors . 'Het getal moet groter dan 2000 zijn.<br />'

Dan moet het toch werken? En hoe kun je dan ook nog zorgen dat gecontroleerd wordt dat het getal uit 4 cijfers bestaat?
Offline Stefan14 - 29/12/2013 16:28
Avatar van Stefan14 PHP gevorderde strlen(); geeft de lengte van de string weer.
Dus bij het getal 2000 krijg je de waarde 4 terug.

Jij moet gewoon een simpele if statement gebruiken.

De lengte van het getal uit 4 cijfers, gebruik je dus wel die functie strlen voor.

dus krijg je zoiets als dit

  1. <?php
  2. if (strlen($getal) < 4 || $getal < 2000)
  3. {
  4. $errors = $errors . 'Het getal moet groter dan 2000 zijn.<br />';
  5. }
  6. ?>


Offline ViXP51 - 29/12/2013 16:41
Avatar van ViXP51 Nieuw lid @Stefan14: Bedankt voor uw reactie en hulp, het werkt, maar als ik een getal van 5 cijfers invul, wordt het goedgekeurd, en het moet eigenlijk precies 4 getallen. Is dat ook mogelijk.
Offline Stefan14 - 29/12/2013 16:44
Avatar van Stefan14 PHP gevorderde Ja tuurlijk, gewoon het 'kleiner-dan' teken vervangen door '=='
Dan moet het getal precies 4 karakters lang zijn.
Offline ViXP51 - 29/12/2013 16:53
Avatar van ViXP51 Nieuw lid Heb ik gedaan, het ziet er nu zo uit:

<?php
if (strlen($geboortejaar) == 4 || $geboortejaar < 2000)
{
$errors = $errors . 'Het getal moet groter dan 2000 zijn.<br />';
}
?>

Maar als ik 20000 invul, wordt het nog steeds goedgekeurd?
Offline Stefan14 - 29/12/2013 17:01
Avatar van Stefan14 PHP gevorderde Ja, dat is logisch, want wat je nu zegt.
Als het getal 4 karakters is of lager dan 2000 is het fout.

Die == kun je in dit geval vervangen voor != wat staat voor 'is niet'.

daarnaast heb ik nog een denkfoutje gemaakt.
Het '||' teken wat 'of' betekent moet je even vervangen door '&&' wat 'en' betekent.

Nu keurt hij het namelijk al goed als het getal of uit 4 cijfers bestaat, of hoger is dan 2000.
Offline Thomas - 29/12/2013 17:05
Avatar van Thomas Moderator Controleer of het een getal is, en definieer een geldig interval:

  1. <?php
  2. // tevens een check of iemand niet in de toekomst is geboren
  3. if (is_numeric($geboortejaar) && $geboortejaar >= 2000 && $geboortejaar <= date('Y')) {
  4. // alles ok
  5. } else {
  6. // ongeldig jaartal
  7. }
  8. ?>
Offline ViXP51 - 29/12/2013 17:07 (laatste wijziging 29/12/2013 17:51)
Avatar van ViXP51 Nieuw lid Met de code van FangorN is het gelukt. Bedankt voor jullie hulp.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.193s