Terve,

pyydän kaikkien kommentteja seuraavasta ajatuksesta.

Ryhdyin tekemään itselleni pientä paikallista (localhost) tietokantaa (MySQL) 
sanalistasta. Sanalistan saa ulos tietokannasta PHP:llä. Valmis sanalista 
olisi samassa muodossa kuin Harrin finnish.dict.in-tiedosto. PHP:n 
tulostamalta www-sivulta sen voisi siirtää ja tallentaa Katen (utf-8 
pakotettuna) avulla finnish.dict.in-tiedostoon.

Webmin ja phpMyAdmin auttavat sopivien sql-hakujen etsimiseen ja 
muokkaamiseen. En ole vielä tehnyt lomaketta (alasvetovalikot yms) 
tallennusta varten, haen vasta itse tietokannan taulun muotoa ja mitä tietoja 
siihen pitäisi tallentaa.

Sanan tarkistaminen tietokannasta ennen sen tallentamista, jotta sana ei ole 
kahta kertaa sanalistalla, on tärkeä ominaisuus.

Toisaalta sanalistaa voi säilyttää cvs:ssä tai vastaavassa. Tekstitiedostoa 
sellaisenaan on kai pidemmän päälle aika mahdotonta ylläpitää?

Taulu näyttää nyt tältä:

dict_id - Automaattinen numerointi, esim. 3
dict_sana - Sanalistan sana, esim. kissa
dict_koodi - Sanastokoodi Harrin sivun mukaan, esim. subst-p
dict_luokka - Sanaluokka, esim. substantiivi
dict_abc - Aakkosluokka, esim. k

Kaksi tärkeintä lienee dict_sana ja dict_koodi, muu on hyödyllistä (?).

Kehittelen tätä omaan käyttöön viikonlopun ajan, mutta idea on siis 
www-lomake, jonka avulla voi tallettaa sanoja tauluun. Taulusta ne saa ulos 
suoraan muodossa "sana sanastokoodi" niin, että sanojen välissä on yksi rivi. 
Tämän www-listauksen voi siirtää ja tallentaa Katen avulla uudeksi 
finnish.dict.in-tiedostoksi.

---
Alla on käytännön esimerkit taulusta ja php-skripteistä.

dict_finnish.sql:

-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
-- 
-- Palvelin: localhost
-- Luontiaika: 19.08.2005 klo 09:28
-- Palvelimen versio: 4.1.10
-- PHP:n versio: 4.3.10
-- 
-- Tietokanta: `arkki`
-- 

-- --------------------------------------------------------

-- 
-- Rakenne taululle `dict_finnish`
-- 

DROP TABLE IF EXISTS `dict_finnish`;
CREATE TABLE IF NOT EXISTS `dict_finnish` (
  `dict_id` int(11) NOT NULL auto_increment,
  `dict_sana` text,
  `dict_koodi` varchar(255) NOT NULL default '',
  `dict_luokka` text,
  `dict_abc` text NOT NULL,
  PRIMARY KEY  (`dict_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

-- 
-- Vedostan dataa taulusta `dict_finnish`
-- 

INSERT INTO `dict_finnish` VALUES (1, 'ja', 'part-erill', 'partikkeli', 'j'),
(2, 'Jumala', 'subst-p', 'substantiivi', 'j'),
(3, 'kissa', 'subst-p', 'substantiivi', 'k'); 

---

1. Valmis sanalista.

ja   part-erill
Jumala   subst-p
kissa   subst-p

<?php

$hostname="localhost";

$user="arkki";

$password="";

mysql_connect($hostname,$user,$password);

$query="SELECT * FROM `dict_finnish` LIMIT 0 , 30";

$result=mysql_db_query("arkki",$query);

if ($result) {

while ($r=mysql_fetch_array($result)) {

$dict_sana=$r["dict_sana"]; 

$dict_koodi=$r["dict_koodi"];

echo "$dict_sana&nbsp;&nbsp;&nbsp;$dict_koodi<p>"; }

}

?>

2. Aakkosluokka "k".

3 
kissa 
subst-p 
substantiivi 
k

<?php

$hostname="localhost";

$user="arkki";

$password="";

mysql_connect($hostname,$user,$password);


$query="SELECT * FROM `dict_finnish` WHERE `dict_abc` = CONVERT( _utf8 'k' 
USING latin1 ) COLLATE latin1_swedish_ci LIMIT 0 , 30";


$result=mysql_db_query("arkki",$query);

if ($result) {

while ($r=mysql_fetch_array($result)) {

$dict_id=$r["dict_id"];

$dict_sana=$r["dict_sana"];

$dict_koodi=$r["dict_koodi"]; 

$dict_luokka=$r["dict_luokka"];

$dict_abc=$r["dict_abc"];

echo "$dict_id <br/>";

echo "<b>$dict_sana</b> <br/>";

echo "<b>$dict_koodi</b> <br/>";

echo "$dict_luokka <br/>"; 

echo "$dict_abc <p>"; }

}

?>

3. Kaikki tiedot taulusta.

dict_id: 1 
dict_sana: ja 
dict_koodi: part-erill 
dict_luokka: partikkeli 
dict_abc: j 

dict_id: 2 
dict_sana: Jumala 
dict_koodi: subst-p 
dict_luokka: substantiivi 
dict_abc: j 

dict_id: 3 
dict_sana: kissa 
dict_koodi: subst-p 
dict_luokka: substantiivi 
dict_abc: k 

<?php

$hostname="localhost";

$user="arkki";

$password="";

mysql_connect($hostname,$user,$password);

$query="SELECT * FROM `dict_finnish` LIMIT 0 , 30";

$result=mysql_db_query("arkki",$query);

if ($result) {

while ($r=mysql_fetch_array($result)) {

$dict_id=$r["dict_id"];

$dict_sana=$r["dict_sana"]; 

$dict_koodi=$r["dict_koodi"];

$dict_luokka=$r["dict_luokka"];

$dict_abc=$r["dict_abc"];

echo "dict_id: $dict_id <br/>";

echo "dict_sana: <b>$dict_sana</b> <br/>";

echo "dict_koodi: <b>$dict_koodi</b> <br/>";

echo "dict_luokka: $dict_luokka <br/>";

echo "dict_abc: $dict_abc <p>"; }

}

?>


Ystävällisin terveisin Asmo.
-- 
http://fi.openoffice.org/
http://openoffice-fi.sourceforge.net/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to