Gå til innhold

while loop problemer


Anbefalte innlegg

Skrevet

Her er koden:

Klikk for å se/fjerne innholdet nedenfor
<?PHP
$i = 0;
$h = $i;
$h .= ".txt";
while (file_exists($h)){
$i++;
$h = $i;
$h .= ".txt";
}

if (!file_exists($h)){
$fil1 = $i - 1;
$fil1 .= ".txt";
$fil2 = $i - 2;
$fil2 .= ".txt";
$fil3 = $i - 3;
$fil3 .= ".txt";
$fil4 = $i - 4;
$fil4 .= ".txt";
$fil5 = $i - 5;
$fil5 .= ".txt";
}

$filbane1 = $fil1;
$filbane2 = $fil2;
$filbane3 = $fil3;
$filbane4 = $fil4;
$filbane5 = $fil5;

$fil1read = fopen($fil1, "r+");
while(!feof($fil1read)){
$filinnhold1 .= fgets($fil1read);
}
$filinnhold1 = nl2br($filinnhold1);
echo "$filinnhold1<br><br>";
///////////////////////////////////
$fil2read = fopen($fil1, "r+");
while(!feof($fil2read)){
$filinnhold2 .= fgets($fil2read);
}
$filinnhold2 = nl2br($filinnhold2);
echo "$filinnhold1<br><br>";
///////////////////////////////////
$fil3read = fopen($fil3, "r+");
while(!feof($fil3read)){
$filinnhold3 .= fgets($fil3read);
}
$filinnhold3 = nl2br($filinnhold3);
echo "$filinnhold3<br><br>";
///////////////////////////////////
$fil4read = fopen($fil4, "r+");
while(!feof($fil4read)){
$filinnhold4 .= fgets($fil4read);
}
$filinnhold4 = nl2br($filinnhold4);
echo "$filinnhold4<br><br>";
///////////////////////////////////
$fil5read = fopen($fil5, "r+");
while(!feof($fil5read)){
$filinnhold5 .= fgets($fil5read);
}
$filinnhold5 = nl2br($filinnhold5);
echo "$filinnhold5<br><br>";
///////////////////////////////////
?>

 

Problemmet er at den siste .txt filen kommer 2ganger..

Hva har jeg gjort feil? Hvor har jeg gjort feil?

 

 

(Ps, vet det kan gjøres lettere, men liker å gjøre ting min egen vei)

Videoannonse
Annonse
Gjest Slettet+142
Skrevet

Henger meg på Ståle her, du :hm:

Skrevet

Han leser innholdet i 5 av de høyest nummererte filene.

 

Men her er feilen:

$fil2read = fopen($fil1, "r+");

Skal være $fil2

 

Men den feilen er typis for "copy-paste-endre-ett-tegn"-kode, og hvis det er din egen vei bør du vel prøve å utvide horisonten litt? :)

 

Denne koden gjør akkurat det samme:

PHP
<?php

$i = -1;

do {

$i++;

$h $i.'.txt';

} while (file_exists($h))

$i--;

 

for ($j 1$j 5$j++) {

$fil = ($i-$j).'.txt';

$filinnhold nl2br(file_get_contents($fil));

echo "$filinnhold<br><br>";

}

?>

Gjest Slettet+142
Skrevet

-morten hadde vel en mye bedre kode til deg for det du skal.

Men file_exist sjekkingen er for dårlig. hvis det er en fil som heter 0.txt og en fil som heter 3.txt, vil 3.txt overskrives...

Skrevet

Til trådstarter: Du bør SERIØST vurdere å lese litt mer teori. Er vant til å se ekstremt dårlig kode her på forumet, men det der tok kaka. Når du begynner å statisk liste opp filler på den måten vitner det om noe fundamentalt manglende...

 

Er ikke noen skjennepreken (har skrevet like dårlig kode en gang jeg og), men et godt råd. Det å sette i gang med prosjekter med litt størrelse før man i det hele tatt kan det mest grunnlegende blir nesten bare å kaste bort tiden.

-morten var jo så snill å ga deg et glimrende utgangspunkt for videre læring med koden han postet. Sett deg godt inn i den du, og når du har forstått alt som skjer der kan du kode myyyye mer effektivt

 

Den som tror at han er ferdig utlært er ikke utlært, bare ferdig.

Skrevet

@PHPdude

LOL, skal aldri bruke dette som et CMS eller noe, er bare for å teste å lære diverse kommandoer, tenkte å begynne på med MySQL litt senere.

 

@mariyo

står i topic "(Ps, vet det kan gjøres lettere, men liker å gjøre ting min egen vei)", pga da skjønner jeg kode, og det blir ikke bare copy & paste. Men hvis du forklarer koden til -morten så kansje jeg faktisk skjønner litt mer.. xD

Skrevet (endret)

Hva er det du ikke skjønner med koden til -Morten ?

 

Om du forteller oss det skal vi gledelig forklare deg det :)

 

 

Og til alle dere andre som klandrer fyren for elendig kode.

Skal selv ikke sitte og si at dette var noen "bra" kode. Men fyren er i begynnerfasen og da må han få gjøre ting på egen måte. Selv om det ikke alltid er beste. Men det viktigste er jo at han skjønner hva han gjør og hva som skjer. Og om han ikke skjønner det letteste og det "dårligste" så kan han ialefall ikke skrive avansert og optimalisert kode. Ser selv tilbake på kodene mine fra da jeg begynnte med PHP og da kan jeg le HØYT. Optimalisering og "avansert" skriving er noe som kommer etterhvert som man skjønner logikken osv..

 

PS: Ovenfor gjelder for det meste de som lærer av seg selv, og ikke dem som begynner med og lese en bok.. :)

Endret av stianiquniez
Gjest Slettet+142
Skrevet (endret)

Det er forsåvidt jeg ser, kun én person som sier at koden hans er dårlig da :p

Jeg bare nevnte dette med 0.txt og 3.txt for sikkerhetsskyld, slik at det kan optimaliseres[?] ;)

 

Og PHPDude.. Jeg mener jeg har sett langt mer rotete kode enn dette her.

 

Men til topic igjen. Hjelp oss med å forstå hva det er du ikke skjønner, så skal vi hjelpe deg å forstå, slik som stianiquniez sier :thumbup:

 

[edit]:

Litt OT til.. Digg signatur, Hayer :p

Endret av Slettet+142
Skrevet
@PHPdude

LOL, skal aldri bruke dette som et CMS eller noe, er bare for å teste å lære diverse kommandoer, tenkte å begynne på med MySQL litt senere.

Frasen "prosjekter med litt størrelse" kan bety så mangt, men uansett var poenget mitt bare å gi deg et råd om at som nybegynner er det lurt å studere så mye som mulig teori før man går i gang med prosjekter. Tidsbruken kan innspares mangedobbelt i lengden.

 

Det er forsåvidt jeg ser, kun én person som sier at koden hans er dårlig da :p

Jeg bare nevnte dette med 0.txt og 3.txt for sikkerhetsskyld, slik at det kan optimaliseres[?] ;)

 

Og PHPDude.. Jeg mener jeg har sett langt mer rotete kode enn dette her.

Jada, jeg har selv skrevet kode som er minst like dårlig før (har vi vel alle...?).

Men det betyr ikke at man ikke skal prøve å lære seg bedre metoder!

Derfor synes jeg det var dumt av trådstarter å avfeie den mye bedre koden -morten posten som "helt på jordet".

Hvis det er noe du ikke forstår så får du heller spørre. Er mange hjelpsomme personer her på forumet :thumbup:

Gjest Slettet+142
Skrevet

Med de ordene der, skal jeg ikke si imot deg. - For jeg er absolutt helt enig ;)

 

Sry OT post.. :closedeyes:

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...