Gå til innhold

Problemer med count().


Anbefalte innlegg

Jeg driver og skriver et script som skal hente data fra en .dat-fil. Denne filen er url-enkodet, ettersom hver linje i filen skal representere ett avsnitt/ en blokk tekst på en side. Scriptet bruker explode() for å skille linjene fra hverandre og dermed videre formatere teksten og sende den til nettleseren. Ja, uansett. :blush: Poenget er at filen ser cirka slik ut:

 

1|dato|tid|bla+bla+bla.

2|dato|tid|bla+bla+bla.

2|dato|tid|bla+bla+bla.

2|dato|tid|bla+bla+bla.

3|dato|tid|bla+bla+bla.

4|dato|tid|bla+bla+bla.

 

Det er altså enkelte avsnitt med samme id (tallet først på hver linje). Det scriptet nå skal gjøre er å telle hvor mange avsnitt (linjer i fila) som har samme id. Id-informasjonen får den fra adresselinja med $_GET['side'], men jeg får ikke scriptet til å telle riktig. Istedet for tallet 4 får jeg f.eks. "1234" eller "0000" eller "1111", og jeg forstår ikke hva som er problemet. Noen som har peiling? Koden som behandler akkurat denne delen ser slik ut:

 

<?php
$fil = "avsnitt.dat";
$side = $_GET['side'];
$data = file($fil);
$antall = count($data);
$telle = 0;
for ($i = 0; $i < $antall; $i++) {
$deler = explode("|", $data[$i]);
if (isset($side) && $deler[0] == $side) {
echo "$telle";
}
}
?>

 

(Med denne koden får jeg f.eks. "0000" om det er fire innlegg med den id'en som $_GET['side'] sender ut...)

 

Utrolig takknemlig om noen har peiling/ kan hjelpe meg med dette. Har sittet oppe hele natta og klødd meg i hodet. :hmm:

Lenke til kommentar
Videoannonse
Annonse

Grunnen til dette er at du ikke lar den telleferdig før du ber den skrive ut svaret.

 

istede for echo "$telle"; kan du skrive $telle++;

 

og når den er ferdig å gå gjennom alle linjene skriver du ( etter for loopen)

echo $telle;

 

EDIT: med å skrive $telle++ blir det samme som å skrive $telle = $telle + 1; altså du plusser på en i den verdien som er der. Med å skrive ++$telle; legger du på en verdig før du skriver den ut, feks

 

$telle = 1;

print $telle++." og ".$telle;

 

vil gi deg: 1 og 2

 

$telle = 1;

print ++$telle." og ".$telle;

 

vil gi deg: 2 og 2

Endret av trondes
Lenke til kommentar
Grunnen til dette er at du ikke lar den telleferdig før du ber den skrive ut svaret.

 

istede for echo "$telle"; kan du skrive $telle++;

 

og når den er ferdig å gå gjennom alle linjene skriver du ( etter for loopen)

echo $telle;

6055417[/snapback]

 

Jøss tusen takk! Det fungerte jo utmerket! Tusen hjertelig takk skal du ha!

*Klapp på hodet* :)

 

Edit: Takk for tilleggsinformasjon. Jeg skal notere det: )

Endret av Atch
Lenke til kommentar
Jøss tusen takk! Det fungerte jo utmerket! Tusen hjertelig takk skal du ha!

*Klapp på hodet*  :)

6055431[/snapback]

 

Nå jeg skal svare "voff" ?

Men iallefall det som pleier å hjelpe hvis du har problem som du ikke klarer å løse er å legge inn et innlegg her, også fortsette å prøve å løse problemet selv. Som oftest hjelper dette av en eller ennen grunn :)

 

Har også merket at det hjelper å ta seg en pause fra koden med problemet også, fortsett en annen plass å programmer. For så og gåtilbake til problem koden et stund etter på.

 

Eller så er hjelp via MSN eller noe lignende også å anbefale. Da du som oftest får svar fortere på slik.

 

Andre ting som kan hjelpe er å skrive om igjen akuratt den delen du har problem med, kan oppleve at jeg da velger å løse oppgaven på en annen måtte og dermed ikke får de samme problemet.

 

Selv kan jeg si at jeg brukt 2 timer på å løse et problem i en kode på 20-30 linjer.

Det som var mest irriterende var at jeg hadde ikke skrevet noe feil i koden, men html koden som sendte inn informasjonen til php scriptet hadde byttet om på to verdier: slik at $til <-> $fra ble byttet om. ganske irriterende. Men fikk nå optimasert koden litt da :)

Lenke til kommentar
Nå jeg skal svare "voff" ?

"Møø" holder rikelig.

 

Jeg er veldig enig i alt det du sier der. Ble stående helt fast, men nå er jeg igang igjen. Forsøkte virkelig mange underlige "ommøbleringer" på bare den lille koden, men det ble galt hver eneste gang. Trondes til unnsetning! :w00t:

 

Pause fra koden med problemet klarer jeg ikke. Er usedvanlig utålmodig. Begynte å lære meg html i oktober, og nå skal jeg få til noe skikkelig i php. Ikke tid til å vente her i gården hehe.

 

Lykke til med hva enn du programmerer og styrer med!

Kanskje jeg (*host*) får hjulpet deg en gang tilbake. Yeah right.

 

*Wave*

 

Edit: Jeg glemte kua.

Endret av Atch
Lenke til kommentar

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...