Een onnodige loop.quote:
Het is geen kwestie van "de oplossing zien", het is een kwestie van een oplossing bedenken. Het is geen geheim waar je achter moet zien te komen ofzo, je moet gewoon verzinnen wat je voor instructies zou moeten geven om de gewenste output te krijgen. En aangezien het niet zo'n moeilijk probleem is, duurt het dus ook niet erg lang voordat je een geschikte oplossing hebt verzonnen.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Ik had denk ik een while(true) gebruikt icm met een for en een for each loop, gewoon, om hem te stangen.quote:Op maandag 7 november 2011 15:01 schreef Pakspul het volgende:
[..]
Als het om een bullshit opdracht gaat dan kun je nooit teveel onnodige loops hebben
1 2 3 4 5 | <?php foreach(range(1,9) as $i) { echo implode(range(1,$i))."\r\n"; } ?> |
quote:Op maandag 7 november 2011 16:07 schreef Scorpie het volgende:
[..]
Ik had denk ik een while(true) gebruikt icm met een for en een for each loop, gewoon, om hem te stangen.
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 | <?php $res = array( '0', '01', '012', '0123', '01234', '012345', '0123456', '01234567', '012345678', '0123456789', ); foreach ($res as $value) { echo $value . "<br />"; } // of! echo current($res); while ($value = next($res) ) { echo $value . "<br />"; } ?> |
quote:Op maandag 7 november 2011 15:01 schreef Pakspul het volgende:
[..]
Als het om een bullshit opdracht gaat dan kun je nooit teveel onnodige loops hebben
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 | <?php $i = 0; while($i != 123456790) { switch($i) { case 0: echo $i . "\n"; break; case 1: echo '0' . $i . "\n"; break; case 12: echo '0' . $i . "\n"; break; case 123: echo '0' . $i . "\n"; break; case 1234: echo '0' . $i . "\n"; break; case 12345: echo '0' . $i . "\n"; break; case 123456: echo '0' . $i . "\n"; break; case 1234567: echo '0' . $i . "\n"; break; case 12345678: echo '0' . $i . "\n"; break; case 123456789: echo '0' . $i . "\n"; break; } $i++; } ?> |
1 2 3 4 5 6 7 8 9 10 | 0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789 |
Denk niet dat de leraar het goed rekent.quote:
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 | <?php $res = array( '0', '01', '012', '0123', '01234', '012345', '0123456', '01234567', '012345678', '0123456789', ); echo current($res); // 0 echo next($res); //01 echo next($res); //012 echo next($res); //0123 echo next($res); //01234 echo next($res); //012345 echo next($res); //0123456 echo next($res); //01234567 echo next($res); //012345678 echo next($res); //0123456789 ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php while(1>2); echo '0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789'; ?> |
quote:Op maandag 7 november 2011 16:17 schreef Pakspul het volgende:
[..]
while(false); er zit inderdaad een while in
pff, maakt geen eens gebruik van classesquote:Op maandag 7 november 2011 16:20 schreef GlowMouse het volgende:
Die van The_Terminator is het beste.
Ik heb dus serieus een keer met zo'n soort code van iemand anders moeten werken, zag er ongeveer zo uit:quote:Op maandag 7 november 2011 16:20 schreef GlowMouse het volgende:
Die van The_Terminator is het beste.
1 2 3 4 5 6 7 8 9 10 11 | <?php if ( $_GET['actie']==1 ) { $query="SELECT * FROM tabel WHERE kolom=1"; } if ( $_GET['actie']==2 ) { $query="SELECT * FROM tabel WHERE kolom=2"; } if ( $_GET['actie']==3 ) { $query="SELECT * FROM tabel WHERE kolom=3"; } ?> |
Thanks!quote:Op maandag 7 november 2011 16:20 schreef GlowMouse het volgende:
Die van The_Terminator is het beste.
Maar wel meer dan 123 miljoen onnodige loopsquote:Op maandag 7 november 2011 16:22 schreef Pakspul het volgende:
[..]
pff, maakt geen eens gebruik van classes
quote:Op maandag 7 november 2011 16:26 schreef The_Terminator het volgende:
[..]
Thanks!
[..]
Maar wel meer dan 123 miljoen onnodige loops
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 | <?php $output = array(); while(true) { $randnr = rand(0, 123456789); switch ($randnr) { case 0: $first = true; $output[0] = $randnr; break; case 1: $second = true; $output[1] = '0' . $randnr; break; case 12: $third = true; $output[2] = '0' . $randnr; break; case 123: $fourth = true; $output[3] = '0' . $randnr; break; case 1234: $fifth = true; $output[4] = '0' . $randnr; break; case 12345: $sixth = true; $output[5] = '0' . $randnr; break; case 123456: $seventh = true; $output[6] = '0' . $randnr; break; case 1234567: $eighth = true; $output[7] = '0' . $randnr; break; case 12345678: $ninth = true; $output[8] = '0' . $randnr; break; case 123456789: $tenth = true; $output[9] = '0' . $randnr; break; } if ( $first == true && $second == true && $third == true && $fourth == true && $fifth == true && $sixth == true && $seventh == true && $eighth == true && $ninth == true && $tenth == true ) { break; } } echo current($output); // 0 echo next($output); //01 echo next($output); //012 echo next($output); //0123 echo next($output); //01234 echo next($output); //012345 echo next($output); //0123456 echo next($output); //01234567 echo next($output); //012345678 echo next($output); //0123456789 ?> |
Die van jou kan na 10 loops klaar zijn snap niet waarom je de argumenten van rand niet wat ruimer kiest ookquote:Op maandag 7 november 2011 16:36 schreef Pakspul het volgende:
[..]
[ code verwijderd ]
Minimaal 123456789 loopjes, maar ga er maar vanuit dat het er velen malen meer zullen zijn
kans 1 op 8.22526E+80 dat hij in 10 loops klaar isquote:Op maandag 7 november 2011 16:39 schreef GlowMouse het volgende:
[..]
Die van jou kan na 10 loops klaar zijn snap niet waarom je de argumenten van rand niet wat ruimer kiest ook
1 2 3 4 5 6 7 | <?php $_ = array(0); do { $_[] = end($_) . count($_); } while (count($_) <= 9); echo implode("\n", $_); ?> |
1 2 3 4 | <?php foreach(range(0,9) as $i) { echo '0'.implode(range(1,$i))."\r\n"; } |
Er zit ook geen while loop in.quote:Op maandag 7 november 2011 20:28 schreef Chandler het volgende:
Je zou voor de grap dit topic met http://gathering.tweakers.net/forum/list_messages/1315200 moeten mergen
Die van glowmouse is trouwens ook niet goed, range 1 t/m 9? waar is de 0 dan?
[ code verwijderd ]
Zo is hij wel goed dat ik glowmouse moet verbeteren
niet getest maar logischer wijs goed iets minder fout
oj de eerste van jou is nu '00', dat is ook niet goed.quote:Op maandag 7 november 2011 20:28 schreef Chandler het volgende:
Je zou voor de grap dit topic met http://gathering.tweakers.net/forum/list_messages/1315200 moeten mergen
Die van glowmouse is trouwens ook niet goed, range 1 t/m 9? waar is de 0 dan?
[ code verwijderd ]
Zo is hij wel goed dat ik glowmouse moet verbeteren
niet getest maar logischer wijs goed iets minder fout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $query_attach= " SELECT * FROM hkp_attachments WHERE status = 0 " ; $qry_att = QueryOra($db, $query_attach); QueryExe($qry_att, OCI_DEFAULT, $query_attach); while ($row_att = oci_fetch_array ($qry_att, OCI_ASSOC)) { $att_eaiexportid = $row_att['EAIEXPORTID']; $att_barcode = $row_att['BARCODE']; $att_filename = $row_att['FILENAME']; $att_act_id = $row_att['ACT_ID']; $att_status = $row_att['STATUS']; |
En verwijst dan naar deze regel:quote:Warning: oci_fetch_array(): ORA-24374: define not done before fetch or execute and fetch in /appl/www/scripts/da_status_omzetting.php
1 | while ($row_att = oci_fetch_array ($qry_att, OCI_ASSOC)) { |
Cause: The application did not define output variables forquote:Op dinsdag 8 november 2011 11:00 schreef Cue_ het volgende:
Oke nieuw vraagje
Mijn code:
[ code verwijderd ]
Hierna komt nog een tweede lus binnen de while loop die ook weer zo'n zelfde qry met while loop uitvoert.
Nu roep ik via Putty een .sh script aan die deze qry moet uitvoeren. Maar dan krijg ik deze foutmelding:
[..]
En verwijst dan naar deze regel:
[ code verwijderd ]
Maar snap niet echt wat ik dan moet veranderen. Iemand ideeen?
1 2 3 4 5 6 7 8 | <?php for ($i=1;$i==true;$i++){ $naam=$_POST["$i"]; echo " $naam "; } ?> |
Die for loop gaat door zolang $i true is, je zal hem dus ergens op false moeten zetten als je wil dat hij stopt. Maar wat een rare constructie trouwensquote:Op woensdag 9 november 2011 12:42 schreef vlam12 het volgende:
Ik zit weer vast
[ code verwijderd ]
Ik wil dat hij stopt met echoën als $naam=$_POST["$i"] een foutcode geeft, maar ik heb geen idee hoe ik dat moet oplossen.
1 2 3 4 5 6 7 8 | <?php $i = 0; while(! empty($_POST[$i])) { $naam=$_POST[$i]; echo " $naam "; $i++; } ?> |
1 2 3 | <?php echo " $naam "; ?> |
Ach, als je spaties voor en naam de variabele wil hebben kan je ookquote:Op woensdag 9 november 2011 13:04 schreef Sitethief het volgende:
[ code verwijderd ]
Ik zou dat nooit zo doen, altijd zonder "". Wat voor een nut heeft het om er " om heen te zetten? Als je simpelweg een variabele wil laten zien kan dat prima zonder "
1 2 3 | <?php echo (" ".$naam." "); ?> |
quote:Echo with commas, not periods. If you use periods, PHP has to concatenate the string before it outputs. If you use commas, it just outputs them in order with no extra processing.
1 2 3 4 5 6 7 | <?php <form method="POST" action="ontvangen3.php"> <input type="text" name="velden" size="20" maxlength="30" > <br> <input type="submit" name=keuzen value="Verzenden" action="ontvangen3.php"> </form> ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $waarde=$_POST['velden']; echo '<form method="POST" action="tabel.php">'; for ($iets=1; $iets<=$waarde; $iets++){ $tabel=' <input type="text" name="'.$iets.'" size="20" maxlength="30"> <br> '; echo $tabel; } echo' <p> <input type="hidden" name="'.$iets.'" value="'.$iets.'" action="tabel.php"> <input type="submit" name="namen" value="verzenden" action="tabel.php"> </form> '; ?> |
Hoeft niet persee name="voornaam_$index" zou voldoende kunnen zijn om ze later weer uit te lezen.quote:
Een foreach zou toch hetzelfde doen zonder dat je $i hoeft te gebruiken?quote:Op woensdag 9 november 2011 12:47 schreef GlowMouse het volgende:
je zult wel zoiets zoeken
[ code verwijderd ]
Waarom zou je in hemelsnaam spaties voor en achter een string willen hardcoden?quote:Op woensdag 9 november 2011 13:05 schreef GI het volgende:
[..]
Ach, als je spaties voor en naam de variabele wil hebben kan je ook
[ code verwijderd ]
doen maar dan vind ik dit beter leesbaar.
tot een user met vijf invulvakjes alleen de eerste drie invult wel jaquote:Op woensdag 9 november 2011 13:21 schreef KomtTijd... het volgende:
[..]
Een foreach zou toch hetzelfde doen zonder dat je $i hoeft te gebruiken?
Dit ja!quote:
1 2 3 4 5 | <?php for($iets = 1; $iets <= $waarde; $i++) { echo "<input type='text' name='names[]' size='20' maxlength='30'>"; } ?> |
Maar dan weet je nog niet hoeveel het er zijn. Moet je gaan exploden op "voornaam_". Dan is de input name met [] veel makkelijker, omdat je dan gewoon een array terugkrijgtquote:Op woensdag 9 november 2011 13:21 schreef Pakspul het volgende:
[..]
Hoeft niet persee name="voornaam_$index" zou voldoende kunnen zijn om ze later weer uit te lezen.
Ohja idd dat zou je dan in de loop nog moeten checken...quote:Op woensdag 9 november 2011 13:22 schreef GlowMouse het volgende:
[..]
tot een user met vijf invulvakjes alleen de eerste drie invult wel ja
het echte probleem is dat je met foreach alle postvelden krijgt; als je names[] gebruikt dan zou ik juist wel foreach gebruikenquote:Op woensdag 9 november 2011 13:24 schreef KomtTijd... het volgende:
[..]
Ohja idd dat zou je dan in de loop nog moeten checken...
Als je tien rijen bouwt dan krijg je met veldnaam[] er tien terug en voornaam_$index ook tien. En je hoeft niet te exploden want je kunt gewoon checken met $currentfield = "voornaam_" . $i; empty($currentfield); ....quote:Op woensdag 9 november 2011 13:24 schreef remi1986 het volgende:
[..]
Maar dan weet je nog niet hoeveel het er zijn. Moet je gaan exploden op "voornaam_". Dan is de input name met [] veel makkelijker, omdat je dan gewoon een array terugkrijgt
Arrays & loopsquote:Op woensdag 9 november 2011 13:33 schreef Pakspul het volgende:
[..]
Als je tien rijen bouwt dan krijg je met veldnaam[] er tien terug en voornaam_$index ook tien. En je hoeft niet te exploden want je kunt gewoon checken met $currentfield = "voornaam_" . $i; empty($currentfield); ....
hear, hearquote:Op woensdag 9 november 2011 13:36 schreef Scorpie het volgende:
[..]
Arrays & loops
Concatenatie en empty() checks
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |