Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP:n if-rakenne

Biotank [08.01.2005 12:47:28]

#

Eli olen tässä aloitellut PHP:tä ja nyt en jostain syystä saa tätä koodinpätkää toimimaan:

<?php
$arvot = array("tuhoisa", "kurja", "kehno", "heikko", "välttävä", "kelvollinen", "hyvä", "erinomainen", "mahtava", "loistava", "häikäisevä", );
$taidot = array("Kestävyys", "Maalivahti", "Pelinrakennus", "Puolustus", "Laituri", "Maalinteko");
$pelaaja = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", );

echo "Pelaaja " . $pelaaja[0] . ":lla on";



echo $arvot[2] . "ja" . $taidot[0];

$arvot[8];


if ($arvot < 6);
	echo "anna potkut";

elseif ($arvot == 6);
	echo "en tiedä";

elseif ($arvot > 6);
	echo "pidä vaan";
?>

Ruutuun tulee vain teksti: "Parse error: parse error, unexpected T_ELSEIF in /srv/www/htdocs/matias/tacb/testausta.php on line 18"
Ongelma on tämäkin varsin yksinkertainen
mutta voisiko joku pro auttaa, mikä tuossa ei toimi?

Antti Laaksonen [08.01.2005 12:50:17]

#

Puolipistettä ei tule if- ja elseif-rivien loppuun. Jos ehtoon kuuluu useampia lauseita, kirjoita ne aaltosulkujen ({ ja }) sisään.

Biotank [08.01.2005 12:53:39]

#

Antti Laaksonen kirjoitti:

Puolipistettä ei tule if- ja elseif-rivien loppuun. Jos ehtoon kuuluu useampia lauseita, kirjoita ne aaltosulkujen ({ ja }) sisään.

Joo, juuri selvisi kun katsoin PHP-opastasi...

leftover [08.01.2005 13:41:06]

#

Lisäksi koodissa on joitakin outouksia kuten:

$arvot[8];
Tämä ei tee mitään, oliko tarkoitus kenties laittaa $arvot = $arvot[8]; ?

Jos ylläolevaan kysymykseen vastaus on ei, on seuraava outous tässä

if ($arvot > 6)
$arvot on nyt taulukko, etkä voi verrata taulukkoa kokonaislukuun vaan sinun tulee verrata taulukon alkiota kokonaislukuun tyyliin
if ($arvot[8] > 6)

Biotank [08.01.2005 17:33:53]

#

Tarkoitus on, että pelaajan $arvot:n ollessa tuhoisa (eli 0) tulostetaan teksti "paska pelaaja", pelaajan $arvot:n ollessa kurja (eli 1) tulostetaan teksti "huono pelaaja" jne.

<?php
$arvot = array("tuhoisa", "kurja", "kehno", "heikko", "välttävä", "kelvollinen", "hyvä", "erinomainen", "mahtava", "loistava", "häikäisevä" );
$taidot = array("kestävyys", "maalivahti", "pelinrakennus", "puolustus", "laituri", "maalinteko");
$pelaaja = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", );

echo "<b>Pelaaja " . $pelaaja[0] . "</b>:lla on ";

echo $arvot[0] . " " . $taidot[0];

?>

<br>

<?php

echo "Hän on siis ";

if ($arvot[0])
	echo "paska pelaaja";
elseif ($arvot[1])
	echo "huono pelaaja";
elseif ($arvot[2])
	echo "kehno pelaaja";
elseif ($arvot[3])
	echo "heikko pelaaja";
elseif ($arvot[4])
	echo "kelpo pelaaja";
elseif ($arvot[5])
	echo "hyvä pelaaja";
else
	echo "mahtava pelaaja";

echo ".";

?>

Olen sitten alle 15-v, joten älkää yliarvioiko minua, logiikka ei ole apunani;)

Tuleeko noista $arvot[ ] jutuista boolean-arvoja, eli ne kaikki ovat true tuossa if-rakenteessani?

Antti Laaksonen [08.01.2005 19:07:56]

#

Biotank kirjoitti:

Tuleeko noista $arvot[ ] jutuista boolean-arvoja, eli ne kaikki ovat true tuossa if-rakenteessani?

Oikein hoksattu.

Jos $arvot-taulukossa olevat adjektiivit kuvastavat suoraan vastaavia pelaajia $pelaaja-taulukossa (A on tuhoisa, B kurja jne.), voit kirjoittaa näin:

echo "Hän on siis " . $arvot[0] . " pelaaja.";

Tietysti nollan tilalle pannaan esiteltävän pelaajan numero.

Vastaus

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

Tietoa sivustosta