Kehittelen palvelua, jolla voi etsiä itselleen sopivan digiboksin. Palvelu on osoitteessa http://simo.arkku.net/digidigi
Ongelma on kuitenkin siinnä, että minulla ei ole käytössä MySQL tukea, enkä osaa hakea tai tulostaa tietoa tietokannasta, joten vinkit olisi tarpeen. Tällähetkellä olen toteuttanut palvelun if-lauseilla, mutta niitä käyttäen palvelusta tulee kohtuuttoman raskas ja vaikea ylläpitää, ja oletan, että helpompikin keino on olemassa.
Teksitietokannasta hakemisen kultaiset sanat ovat fopen, fread, fclose, fwrite, file_get_contents, file_put_contents, file, array_search.
( mixed array_search(mixed needle, array haystack [, boolean strict]) )
Esimerkiksi näin:
<?php # Haetaan tiedosto taulukkoon. $filu = file_get_contents("tekstitietokanta.txt"); $filu = explode("\n", $filu); # Etsitään. Huom! Yksi "tiedonalkio" on yksi tekstitiedoston rivi! $loydetty = array_search($mita_etsitaan, $filu); if (! $loydetty) echo "Ei löytynyt!"; else echo $loydetty; ?>
Edit: Mutta kyllä arkku.netissä pitäisi MySQL olla käytössä.
Kiitos neuvoista.
Heräsi kuitenkin esiin pari kysymystä. Miten saan tulostettua tietokannasta sitten ne tulokset? Pitääkö tieto laittaa tietokantaan muodossa tieto1|tieto2|tieto3 vai jossain toisessa muodossa?
Arkku.netissä on tosiaankin mySQL tuki, mutta minulla ei ole kuin yksi mysql tuki ja se on jo käytössä.
Sinne tekstitiedostoon esim. muodossa
tieto1
tieto2
tieto3
...
tietoN
Eli yksi tieto / rivi (explode("\n",...))
Miksei muodossa:
tieto1_boksi1|tieto2_boksi1...
tieto1_boksi2|tieto2_boksi2...
...?
Mitä tarkoittaa "yksi MySQL-tuki"? Onko taulujen määrää rajoitettu?
Eipäilen että hän tarkoittaa yksi MYSQL-tunnus, koska Arkusta saa vain yhden tunnuksen käyttöön.
juha127 kirjoitti:
Eipäilen että hän tarkoittaa yksi MYSQL-tunnus, koska Arkusta saa vain yhden tunnuksen käyttöön.
Muistaakseni jotenkin noin se meni.
sane kirjoitti:
Miksei muodossa:
tieto1_boksi1|tieto2_boksi1...
tieto1_boksi2|tieto2_boksi2...
...?
Voit sen kyllä noinkin laittaa, mutta silloin KAIKKI tiedot pitää olla samalla rivillä ja explode("\n"..) -> explode("|"..)
Juu, ja lienee file() funktio kätevämpi tuohon tarkotukseen, kun se lukee rivi kerrallaan taulukkoon. Toki mahdollista myös tuolla explodella, mutta helpompaa se niin on. Eli muotoon
tieto1_boksi1|tieto2_boksi1... tieto1_boksi2|tieto2_boksi2...
Ja taulukkoon luku sitten jotenkin näin
$tiedosto = "jotain.txt"; $tiedosto = file($tiedosto); for($k=0;$k<count($tiedosto);$k++){ $tiedot[$k] = explode("|", $tiedosto[$k]); }
Näin saat boksi ykösen tiedot taulukkoon $tiedot[0], ykös tiedon $tiedot[0][0], kakostiedon $tiedot[0][1] boksi kakosen tiedot[1]...
edit: Olisi varmaan tehokkaampaa/helpompaa käyttää tota sun tietokantaa ja tehdä sinne vain uusi taulu näitä bokseja varten?
> Sane
En vain halunnut säheltää silmukoiden kanssa kun heitin skriptin päästä :)
Mutta kätevämpää olisi käyttää foreach()ia for()in sijasta.
zhoop kirjoitti:
Arkku.netissä on tosiaankin mySQL tuki, mutta minulla ei ole kuin yksi mysql tuki ja se on jo käytössä.
Sinulla on käytössä yksi tietokanta, jossa voi olla rinnakkaisia tauluja N kappaletta (N on joku iso luku, jonka voi varmaan jostain MySQL:n dokumentaatiosta kaivaa esiin). Jos sinulla ei kovin paljoa ole tietoa niissä jo olemassa olevissa tauluissa, niin etköhän sinä voi hyödyntää sitä MySQL:ä tässäkin.
Kunnon tietokanta on paljon näppärämpi käytää kuin itse tehty tekstiversio. Arkun php on nelosversio, joten edes SQL-Liteä ei voi hyödyntää, vaan tosiaan toinen vaihtoehto on luoda tietokanta itse (tai hyödyntää muistaakseni koodivinkeistä löytyviä esimerkkejä).
Aihe on jo aika vanha, joten et voi enää vastata siihen.