Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tietovisaan ”poista kaksi” ja ”ohita kysymys”

Sivun loppuun

minävaa [07.05.2015 18:37:02]

#

Olen tekemässä PHP:llä ja MySQL tietovisaa ja se toimii.

Haluaisin peliin kuitenkin perinteiset Poista kaksi väärää vaiht.ehtoa- ja ohita kysymys-painikkeet.

Osaisiko joku antaa vinkkiä kuinka nuo saisi tehtyä? Kiitos jo etukäteen.

Metabolix [07.05.2015 18:57:00]

#

Mikä kohta näiden toteutuksessa tuntuu vaikealta?

minävaa [07.05.2015 19:12:48]

#

En vain pääse edes alkuun, kun en tosiaan ole mikään huippukoodari.

Jos jollain olisi intoa neuvoa noihin sellainen koodin pohja, niin uskon kyllä osaavani itse sijoittaa siihen oikeat muuttujat.

Metabolix [07.05.2015 19:31:40]

#

Toteutus riippuu ihan siitä, miten olet muuten tehnyt visan, joten ei voi antaa mitään kovin järkevää pohjaa.

Kysymyksen ohittaminen nyt ainakin on helppo tehdä: siirrytään vain seuraavaan kysymykseen, kuten vastauksenkin jälkeen tehtäisiin.

Poistoon voi käyttää jotain tällaista:

<?php
// Kaikki vaihtoehdot ja oikea vaihtoehto.
$kaikki = [1, 2, 3, 4];
$oikea = 3;
// Oikeaa ei saa poistaa.
$väärät = array_diff($kaikki, [$oikea]);
// Sekoitetaan väärät vaihtoehdot ja otetaan kaksi.
shuffle($väärät);
$poistettavat = array_slice($väärät, 0, 2);

// Tulostamisen yhteydessä:
if (in_array($vaihtoehto, $poistettavat)) {
	echo "(poistettu)";
} else {
	echo htmlspecialchars($vaihtoehto);
}

minävaa [07.05.2015 19:49:49]

#

Käytin visan tekemiseen sessionhallintaa.

Koodi näyttää seuraavalta, jos siitä mitään apua on:

Pentu [07.05.2015 21:54:28]

#

Tuon ohittamisen vois varmaan hoitaa jotenkin seurvaavasti

if(isset($_REQUEST['ohita']) && $_REQUEST['ohita'] == 1){
	$_SESSION['kysymysnumero']++;
}

TuomasK [07.05.2015 22:32:38]

#

Kysymysten poiston minä tekisin jotenkin näin

// Tarkastetaan tuleeko lomakkeelta pyyntö poistaa kaksi vastausta
if(isset($_REQUEST['poista'])){
    // Tähän väliin tuo Metabolixin koodi (vähän muunneltuna)
}

minävaa [07.05.2015 23:46:21]

#

Tuo ohitus-kohta toimi, kiitos siitä!

Kuinka tuota Metabolixin koodia pitäisi muunnella, jotta toimisi?

Metabolix [08.05.2015 15:22:00]

#

Sinun pitäisi tallentaa vastausvaihtoehdot tietokantaan erikseen, jotta voisit ehtolauseiden avulla tulostaa niistä vain osan. Jos vastaukset ovat jotenkin suoraan kysymystekstin seassa, niiden poistaminen on virhealtista ja rumaa kikkailua.

minävaa [08.05.2015 15:29:07]

#

Tarvitseeko minun siis luoda kantaan vastauksille oma taulu?

Tällä hetkellä kannassa on taulu tässä muodossa:

INSERT INTO kysymykset
(kysymys,vastaus1,vastaus2,vastaus3,vastaus4,oikeavastaus)

Metabolix [08.05.2015 15:32:20]

#

Nykyinen taulu sopii. Näyttämästäsi koodista puuttuu kokonaan tuo vastausten käsittely, joten taulun rakennetta ei voinut arvata. On myös mahdotonta sanoa, miten koodiasi sitten pitäisi muuttaa. Koodiini kuitenkin tarvitsee vain vaihtaa muutama muuttuja, niin se toimii. Sanoithan, että osaisit tehdä sen.


Sivun alkuun

Vastaus

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

Tietoa sivustosta