Eli minulla on sivuston jäsenet txt tiedostossa muodossa:
Pertti|email@esim.com|salasana|
Kalle|email@esim.com|salasana|
Joku|email@esim.com|salasana|
Niin tarvitsisin sellaisen skriptan, joka luettelisi jäsenet jollekkin sivulle allekkain ja laittaisi numeron eteen, monesko jäsen hän on.
<? $jasenet = file("jäsenet.txt"); for (i = 0; i < count($jasenet); i++) { $jasen = explode("|", $jasenet[i]); $mones = i+1; //Seuraava tulostaa jäsenen linkkinä jäsenen emailiin //Ota kommenttimerkit pois jos haluat sen // echo $mones .". <a href='mailto". $jasen[1] ."'>". $jasen[0] ."</a><br>"; //Seuraava tulostaa jäsenen nimen pelkkänä tekstinä // echo $mones .". ". $jasen[0] ."<br>"; } ?>
Koodi on testaamatonta, mutta tollein sen ainakin pitäis toimia.
Dollarimerkit puuttui muuttujista :)
Mutta miten listataan jokainen jäsen? Pelkällä nimellä siis.
lainaus:
Mutta miten listataan jokainen jäsen? Pelkällä nimellä siis.
<?php $jasenet=file('jasenet.txt'); foreach($jasenet as $rivi){ $eroteltu=explode('|',$rivi); echo $eroteltu[0].'<br />'; } ?>
Tjsp. Mahdolliset virheet menee kellonajan piikkiin.
Edit: Jaa, sekö tarviiki alotus- ja lopetustagit, että suostuu värittämään tuon
Loistavaa.
Vielä kun saisi jonkinlaisen if-lausekkeen, joka tarkistaa onko tulostettavassa käyttäjälistassa sama nimi useampaan kertaan, ja tulostaa se vain kerran.
En käsitä miten sen saisi tekemään näin, siksi onkin hyvä tälläinen mesta missä sitä sopii kysäistä.... =)
Tässä olisi yksi ratkaisu, voihan niitä järkevämpiäkin olla :)
Eli siis käytetään tuota Blazen koodipätkää ja lisätään pari juttua:
<?php $jasenet=file('jasenet.txt'); $kaytetty = array(); // Tehdään taulukko minne laitetaan jo tulostetut tunnukset foreach($jasenet as $rivi){ $eroteltu=explode('|',$rivi); if (in_array($eroteltu[0], $kaytetyt)) { echo $eroteltu[0].'<br />'; $kaytetty[] = $eroteltu[0]; } } ?>
EDIT: Näppis on niin p*ska että meni 20 minuuttia kirjoittaa tuo ilman typoja :) Miten muuten tekstin saa highlightiksi, eikö se menekään koodi-tageilla?
Koodista tulee oikeanväristä sijoitettuna [koodiphp] -tagien ja php-tagien sisään.
Hmm, miksi edit-nappi on pelkkää tekstiä tuossa, vaikka olen kirjautunut sisään?
Editoimisaika umpeutunut (30min)
öh.... antsan vinkki ei kyllä pelitä.
Ilman iffejä ehkä paras (helpoin ainakin (ja varma)):
Antsan vinkki testattuna:
<?php $jasenet=file('jasenet.txt'); $kaytetty = array(); // Tehdään taulukko minne laitetaan jo tulostetut tunnukset foreach($jasenet as $rivi){ $eroteltu=explode('|',$rivi); if (!in_array($eroteltu[0], $kaytetty)) { echo $eroteltu[0].'<br />'; $kaytetty[] = $eroteltu[0]; } } ?>
Edit. Tulipas samaan aikaan. T.M. Miksi ilman iffejä parempi? Nopeempi vai?
Nopeampi, kyllä kai (en ole testannut), koska iffien kanssa käytäisiin koko taulukko läpi uudelleen ja uudelleen... niin monta kertaa kunnes koko systeemi on käyty läpi.
Tuossa taulukkojen kanssa kun leikkii, ei tarvitse tarkistaa onko sitä arvoa jo taulukossa, koska se laittaa sen vanhan arvon päälle uuden arvon.
Kiitoksia vaan kaikille vinkkajille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.