Olen yrittänyt saada toimimaan PHP-koodia, jolla saisi toisella sivulla olevan listan tietyt kohdat muutettua tiettyyn muotoon;
Koodin ideana on tulostaa kaikki kohdat, joissa on osallistujarivillä "-"-merkin toisella puolella minaminamina käymällä kaikki rivit läpi, mutta jotain tuntuu mättäävän (olen aloittelija, älkää haukkuko ihan lyttyyn kiitos). :)
<?php $filu = fopen("luokka.txt", "r"); $sis = fread($filu, filesize($file)); fclose($filu); $sisalto = explode("\n", $sis); $pvm = $sisalto[0]; $luokannimi = $sisalto[1]; $paikka = explode(" - ", $sisalto[2]); $mina = ". minaminamina "; for ($x = 5; $x<105;) { $osallistuja = explode("-", $sisalto[$x]); $osallistujanumero = $x - 4; if ($osallistuja[0] = $osallistujanumero . $mina) { echo $osallistuja[1] . '<br />' . $pvm . ' - ' . $luokannimi . ' - <a href=\"' . $paikka[1] . '\">' . $paikka[0] . '</a> ' . $osallistujanumero . '/100<br /><br />'; $x = $x + 1; } else $x = $x + 1; } ?>
luokka.txt
08.02.2008 1 - luokan nimi on X Paikka - http://webbiosoite 1. hlö1 - joku 2. hlö2 - joku 3. minaminamina - joku
.. ja luokka.txt'n koodi jatkuu sadan osallistujan verran. explodeissa vikaa ainakin?
Myös ideoita koodin laajentamiseen niin, että samassa luokka.txt-tiedostossa olisi monta luokkaa allekkain listoineen - omat taidot eivät tähän riittäneet. :)
Voisikohan tuossa for-silmukassa olla jotain vikaa?
Itse ainakin toteuttaisin tuon whilella näin:
$x = 5; while($x<105) { $osallistuja = explode("-", $sisalto[$x]); $osallistujanumero = $x - 4; if ($osallistuja[0] = $osallistujanumero . $mina) { echo $osallistuja[1] . '<br />' . $pvm . ' - ' . $luokannimi . ' - <a href=\"' . $paikka[1] . '\">' . $paikka[0] . '</a> ' . $osallistujanumero . '/100<br /><br />'; $x = $x + 1; } else $x = $x + 1; }
Mitä koodi tulostaa nyt?
ei muutosta. :/
$filu = fopen("luokka.txt", "r"); $sis = fread($filu, filesize($file)); fclose($filu); $sisalto = explode("\n", $sis);
Voisit laittaa tämän pelkästään näin:
$sisalto = file("luokka.txt");
Nyt saat suoraan taulukon, jossa jokainen rivi on oma alkionsa.
Joo, nyt se näyttää kaikki joku't niin kun pitäisi, mutta miten sen saisi näyttämään vain ne, joissa on hlö'nä minä? Nyt se listaa kaikki yhdestä sataan.
Loppuu aika nyt joten joku muu voi vielä pähkäillä asiaa..
Tämän verran sain korjailtua
<?php $sisalto = file("luokka.txt"); $pvm = $sisalto[0]; $luokannimi = $sisalto[1]; $paikka = explode(" - ", $sisalto[2]); $mina = ". minaminamina "; $x = 5; while($x<105) { $osallistuja = explode("-", $sisalto[$x]); $osallistujanumero = $x - 4; echo("{$osallistuja[0]}<br>"); if ($osallistuja[0] == $osallistujanumero . $mina) { echo("{$osallistuja[1]}<br />{$pvm} - {$luokannimi} - <a href=\"{$paikka[1]}\">{$paikka[0]}</a>{$osallistujanumero}/100<br /><br />"); } $x++; } ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.