Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Jäsenien listaus

Sivun loppuun

Bagard [14.02.2004 11:58:53]

#

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.

Gwaur [14.02.2004 12:30:44]

#

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

T.M. [14.02.2004 12:33:57]

#

Dollarimerkit puuttui muuttujista :)

Nyntti [15.02.2004 00:37:44]

#

Mutta miten listataan jokainen jäsen? Pelkällä nimellä siis.

Blaze [15.02.2004 01:54:13]

#

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

Nyntti [15.02.2004 14:56:46]

#

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ä.... =)

antsa [15.02.2004 17:17:11]

#

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?

k-mikko [15.02.2004 18:00:01]

#

Koodista tulee oikeanväristä sijoitettuna [koodiphp] -tagien ja php-tagien sisään.

antsa [15.02.2004 19:04:49]

#

Hmm, miksi edit-nappi on pelkkää tekstiä tuossa, vaikka olen kirjautunut sisään?

T.M. [15.02.2004 19:06:43]

#

Editoimisaika umpeutunut (30min)

Nyntti [15.02.2004 23:14:58]

#

öh.... antsan vinkki ei kyllä pelitä.

T.M. [15.02.2004 23:41:15]

#

Ilman iffejä ehkä paras (helpoin ainakin (ja varma)):

<?php

$jasenet = file("jasenet.txt");

foreach($jasenet as $rivi){
	$osa = explode("|", $rivi);
	$table[$osa[1]] = $osa[1];
}

foreach($table as $value){
	print"$value, ";
}

?>

ajv [15.02.2004 23:41:40]

#

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?

T.M. [16.02.2004 00:35:09]

#

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.

Nyntti [16.02.2004 13:37:47]

#

Kiitoksia vaan kaikille vinkkajille.


Sivun alkuun

Vastaus

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

Tietoa sivustosta