Moro.
Minulla on lomake, jossa valitaan "kohde" a, b, c ja "tila" t1, t2 tai t3.
Nyt ollaan siinä vaiheessa että saan lähetettyä lomakkeen tiedot tekstitiedostoon ja luettua ne toiseen html-dokumenttiin.
"Kohteen tila" pitäisi saada tulostettua erilliselle sivulle.
Pystyisikö tämän tekemään muuttujilla, esim.
$kohde = //tähän $kohde arvon haku tallennuspaikasta $tila= //tähän $tila arvon haku tallennuspaikasta if ($kohde == a){ switch ($tila) { case "t1": echo "tila1"; break; case "t2": echo "tila2"; break; }
jne.
Ymmärrän miten muuttujat saa vaikuttamaan html-koodiin. Mutta mihin ja miten $kohde ja $tila tallennetaan, että kaikkien "kohteiden"(a, b, c) tilat(arvot) säilyvät, kun yhtä tilaa muutetaan?
Kiitos jo etukäteen.
No luet datan sieltä tekstitiedostosta, minne olet sen tallentanutkin. Jossain muodossa olet ilmeisesti onnistunut ne sinne laittamaan ja lukemaankin jo yhdessä paikassa, joten saman toiminnallisuuden siirtäminen toiseen paikkaan pitäisi olla ihan triviaali homma.
Kyllä, mutta data tallentuu .txt-tiedostoon rivittäin muodossa $kohde $tila.
Jos lomakkeella lähettää kohteen a tilan uudelleen niin se menee seuraavalle riville.
Esim.
a t1 c t2 a t2 b t1
Kuinka pystyisin määrittämään muuttumattomat paikat kohteille, että tarvitsisi
vain muuttaa tilaa.
Esim.
a = t2 b = t1 c = t3
Mikä olisi toimiva funktio jolla hakea kohteiden tila ja luoda html-koodi sen mukaan?
Esim.
No yksi simppeli ratkaisuhan on vain etsiä tiedostosta se rivi, jolla haettu avain sijaitsee, ja korvata se rivi uudella (avain, arvo)-parilla.
Vaan oikeasti kannattaisi nyt viheltää peli poikki, heittää tiedostoräpellykset ikkunasta pihalle ja ottaa alle kunnollinen tietokanta.
onko jokin syy siirtää dataa toiselle sivulle tekstitiedoston kanssa, eikä esim sessiossa jos kuitenkin siirrytään saman pannun hostaamalle toiselle sivulle?
vai onko tarkoitus että dataa käytetään myöhemmässä vaiheessa, esim toisessa sessiossa?
Tässäkin tapauksessa serialisointi helpottaisi kummasti datan jatkokäsittelyä.
Öh? Php:n serialize() kylläkin vaikeuttaa jatkokäsittelyä varsin kriittisesti. Ensinnäkin se tekee mahdottomaksi suorittaa hakuja suoraan tiedoston sisältöön; tiedot täytyy ensin purkaa takaisin php:n taulukoiksi ja suorittaa haut niihin. Lisäksi se on sekä hidasta että kuluttaa enemmän muistia, koska tiedot pitää lukea kokonaisuudessaan muistiin sen sijaan, että käsiteltäisiin vain lyhyitä merkkijonoja. Sarjallistetusta datasta ei voi hakea yhtä riviä ilman, että koko tiedosto täytyy lukea muistiin ja purkaa sarjallistetusta muodosta pois. Tai jos sarjallistaa rivin kerrallaan, niin se on sitten vieläkin hitaampaa käsitellä.
Täytyy nyt kuitenkin ymmärtää termien merkitys. "Sarjallistaminen" tarkoittaa vain ohjelman sisäisen tietorakenteen muuntamista tallennuskelpoiseen muotoon. Myös tällaiset itse keksityt flatfile-formaatit ovat sarjallistamista.
Öh? Jos dataa ei ole valtava määrä, niin en näe mitään ongelmaa siinä että luetaan tiedosto kokonaisuudessaa takaisin PHP:n ymmärtämään muotoon esimerkiksi taulukkoon.
Taulukosta voidaan sitten tehdä hakuja, vertailuja, ylikirjoituksia, inkrementaatioita jne..
Kiitoksia vastauksista.
Tosiaan en maininnutkaan, että käyttäjiä/sessioita on useita, joten dataa kirjoitetaan ja luetaan(html-sivupyyntö) Joten tietokantako olisi paras vaihtoehto? Vai .csv?
Tietojen tallennuksen muuttujaan ajattelin näin, kertokaa jos menee metsään:
if ($kohde == "a") { $tila == §tila_a }
Sitten muuttuja tila_a tallennetaan, mutta miten ja mihin? Niin, että tila_a haetaan seuraavalle sivulle määrittämään html-koodi?
Aihe on jo aika vanha, joten et voi enää vastata siihen.