Het stukje waaruit je opmaakte dat je wellicht niet de juiste resultaten terugkrijgt, heb je niet begrepen.quote:
Er staat dat je in je group by all niet aggregate kolommen zou moeten opnemen. Dat heb ik in bovenstaande query toch niet? Of zie ik wat over het hoofd?quote:Op zondag 18 december 2011 16:58 schreef GlowMouse het volgende:
[..]
Het stukje waaruit je opmaakte dat je wellicht niet de juiste resultaten terugkrijgt, heb je niet begrepen.
Das mooiquote:Op zondag 18 december 2011 17:10 schreef GlowMouse het volgende:
eigenlijk niet (een andere db-server keurt je query af), maar van de oorzaak waardoor in hun voorbeeld verkeerde rijen worden teruggegeven heb jij geen last
Moet je wel weten waar je op moet googlen. Gelezen en duidelijk.quote:Op zondag 18 december 2011 17:31 schreef GlowMouse het volgende:
Dummy betekent niet dat je niet hoeft te googlen. http://dev.mysql.com/doc/(...)-hidden-columns.html
1 | return(preg_match('^[0-9]{$min,$max}^', $string))? 1 : 0; |
1 | return(preg_match('^[0-9]{0,10}^', $string))? 1 : 0; |
1 | return(preg_match('^[0-9]{'.$min.','.$max.'}^', $string))? 1 : 0; |
Je hebt gelijk, bedankt!quote:Op dinsdag 20 december 2011 21:24 schreef GlowMouse het volgende:
Die laatste werkt weldegelijk. Je kunt ook gewoon preg_match returnen, die ? 1 : 0 is eigenlijk onlogisch.
1 2 3 | <?php $factuur["levPostalcode"] = preg_replace("/[^0-9\s]/", "", $factuur["levPostalcode"]); ?> |
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <?php /* Een autokenteken bestaat altijd uit 8 tekens (XX-XX-XX). Ieder teken is een letter, een cijfer of een ‘-‘-teken. Een letter staat altijd naast een andere letter of naast een ‘-‘-teken. Een cijfer staat altijd naast een ander cijfer of naast een ‘-‘-teken. */ function kenteken($string){ //maakt de functie aan die als parameter de string accepteert $length = strlen($string); //bekijkt de lengte van de string $letters = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'); //array met alle letters $cijfers = array('1','2','3','4','5','6','7','8','9','0'); //array met alle cijfers $which=0; //$which zal later in de loop aangeven in welke categorie het vorige teken viel, 1 = letter, 2 = cijfer, 3 = '-' if($length != 8){ //als de lengte van de string niet gelijk is aan acht wordt aan de eerste voorwaarde al niet voldaan en 'false' gereturned return false; } elseif($string[3]!='-' and $string[5]!='-' ){ //kijkt of op de 3e en 6e plek wel het '-' teken staat return false; } else { for($index = 0; $index < $length; $index++){ //loop om door de stringposities heen te lopen if(in_array(strtoupper($string[$index]),$letters)){ //als aan deze conditie wordt voldaan, dan is het huidige teken een letter if($which != 2){ //als het vorige teken geen cijfer was (dus een 0, een 1 of een 3) wordt $which op 1 gezet $which=1; } else{ //het huidige teken is een letter, terwijl de voorgaande een cijfer was, wat niet is toegestaan return false; } } elseif(in_array($string[$index],$letters)){ //als aan deze conditie wordt voldaan, dan is het huidige teken een cijfer if($which != 1){ //als het vorige teken geen letter was (dus een 0, een 2 of een 3) wordt $which op 2 gezet $which=2; } else{ //het huidige teken is een cijfer, terwijl de voorgaande een letter was, wat niet is toegestaan return false; } } elseif($string[$index]== '-'){ //als aan deze conditie wordt voldaan, dan is het huidige teken een '-' if ($index=2 or $index=5){ //het '-' teken mag alleen op posities 3 en 6 voorkomen $which=3; //$which wordt enkel op 3 gezet wanneer het '-' teken op de juiste positie staat } else{ return false; } } else{ //het huidige teken valt in geen van de toegestane condities, dus een false wordt gereturned return false; } } return true; //als de loop is doorlopen en niet is afgebroken doordat niet aan een van de eisen is voldaan, kan true worden gereturned } } $kent1="ABCDEFGHI"; $kent2="a3-za-aa"; $kent3="ac-44-@r"; $kent4="ac-pz-44"; $kent5="jhgddest"; $kent6="12345678"; if(kenteken($kent1)){ echo "$kent1 is een kenteken.<br>"; } else { echo "$kent1 is geen kenteken.<br>"; } if(kenteken($kent2)){ echo "$kent2 is een kenteken.<br>"; } else { echo "$kent2 is geen kenteken.<br>"; } if(kenteken($kent3)){ echo "$kent3 is een kenteken.<br>"; } else { echo "$kent3 is geen kenteken.<br>"; } if(kenteken($kent4)){ echo "$kent4 is een kenteken.<br>"; } else { echo "$kent4 is geen kenteken.<br>"; } if(kenteken($kent5)){ echo "$kent5 is een kenteken.<br>"; } else { echo "$kent5 is geen kenteken.<br>"; } if(kenteken($kent6)){ echo "$kent6 is een kenteken.<br>"; } else { echo "$kent6 is geen kenteken.<br>"; } ?> |
if ($index=2 or $index=5){quote:Op woensdag 21 december 2011 12:45 schreef uppie83 het volgende:
Ik heb een stuk code dat controleert of een string aan een aantal eisen voor een kenteken voldoet. Gek genoeg levert de enige juiste string een 'maximum execution time exceeded' op (bij $kent4). Ik zie niet wat het probleem is. Iemand een idee?
[ code verwijderd ]
Bedankt Dat was idd de truc.quote:Op woensdag 21 december 2011 12:52 schreef mstx het volgende:
[..]
if ($index=2 or $index=5){
Ik zou daar == gebruiken.
Als hij 1x bij die regel komt zet hij hem elke keer weer op 2 waardoor hij oneindig door blijft gaan.
Ook bedankt, dat loste inderdaad het laatste probleem nog op. Klopt dat ik niets met nieuwe kentekens doe, maar dat was niet de opdracht Regex ken ik niet... De docent gaf als tip om modulo te gebruiken, maar die begreep ik dan weer nietquote:Op woensdag 21 december 2011 12:57 schreef GlowMouse het volgende:
Op regel 30 moet je $cijfers gebruiken. En je doet nu niks met nieuwe kentekens met een groepje van 3 letters; wat je nu hebt kan ook met een regex.
Heb jij oogjes gekregen van onze goede Heer?quote:Op woensdag 21 december 2011 13:38 schreef Sitethief het volgende:
Wat doet jouw systeem met de volgende kentekens:
00-BBB-1
1-VBB-01
DB-001-B
D-001-BB
Die zijn namelijk ook gewoon geldig...
Geen idee, maar volgens mij zou ik dat oplossen door de condities rondom het '-' teken wat te versoepelen.quote:Op woensdag 21 december 2011 15:00 schreef Sitethief het volgende:
Je hebt gelijk, ik hoop dat ie niet straks alsnog dat kan inbouwen
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |