Miten kannattaa tehdä asiakaskyselylomake jossa on paljon radio button objekteja. Tiedoista pitäisi saada sitten tehtyä yhteenvetoja sun muuta. Ajattelin tekstitiedostoon tietojen tallentamista mutta onko muita ideoita? Pystyiskö tämän toteuttaa ilman PHP:tä.
Kunnon tietokanta helpottaa kyllä varsinkin jo tuloksia on paljon, eli kannattaa käyttää esim. MySQL:ää jos mahdollista. Ei kuitenkaan ole mitenkään mahdotonta toteuttaa tekstitiedostoon tallentamalla, joutuu vaan koodaamaan hieman enemmän.
Jos PHP:tä et halua käyttää niin onhan sitä ASP ja muita palvelimella suoritettavia skriptikieliä, mutta muuntyyppisillä kielillä toteuttamista en suosittele.
Tässä on pieni malli säätö!
Miten rivinvaihto kannattaa toteuttaa tekstitiedostoon et se näyttäis esimerkiksi seuraavalta:
Mikä Eläin | Koira
Mikä Hedelmä | Banaani
<?php if(isset($_POST['laheta'])) { $tiedosto = fopen("vastaukset.txt", "a"); $lemmikit=$_POST['elaimet']; $hedelmat=$_POST['hedelmat']; $kysely1="Mikä Eläin | $lemmikit"; $kysely2="Mikä Hedelmä | $hedelmat"; fwrite($tiedosto, $kysely1); fwrite($tiedosto, $kysely2); fclose($tiedosto); print "<b>Kiitos vastauksesta!<b>"; } else { print "Ei mennyt putkeen"; } ?>
Kannattaa tallentaa tekstitiedostoon vain henkilön vastaukset. Esimerkiksi jos kyselyn kysymykset ovat Mikä eläin? ja Mikä hedelmä? niin tekstitiedoston rakenne voisi olla tällainen:
kärpänen|||banaani||| apina|||mandradiini|||
Tämä helpottaa tulosten käsittelyä skriptillä, skripti voi tämän jälkeen helposti laskea vastauste määrän/suhteen tms, mitä nyt haluatkin. Esimerkkiskripti laskee moniko vastasi "kärpänen":
<?php $erotin="|||"; $karpasia=0; //kärpästen lukumäärä $rivit=file("vastaukset.txt"); //käydään taulukko läpi for ($i=0; $i<count($rivit); $i++) { $rivi=explode($rivit[$i], $erotin); if ($rivi[0]=="kärpänen") $karpasia++; } echo "Kyselyyn vastasi kaikkiaan " . count($rivit) . " henkilöä, joista " . $karpasia . " vastasi kärpänen"; ?>
Tuo koodi on päästä heitetty, mutta kertoo tavan. Kirjoittaminen hoidetaan sitten kirjoittamalla tiedoston perään vastaus1|||vastaus2|||.
Aihe on jo aika vanha, joten et voi enää vastata siihen.