Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP + tiedon muokkaus toiselta sivulta toiseen muotoon

mei_s [23.06.2008 10:45:02]

#

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

Hakoulinen [23.06.2008 11:09:31]

#

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?

mei_s [23.06.2008 11:13:25]

#

ei muutosta. :/

Hakoulinen [23.06.2008 11:18:14]

#

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

mei_s [23.06.2008 11:27:11]

#

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.

Hakoulinen [23.06.2008 11:36:41]

#

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++;

}

?>

http://luutnantti.com/hakulinen/test.php

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta