Hei, ajattelinpa tulla nyt vähän tyhmänä kyselemään teiltä viisaammilta apua. Olen tekemässä opinnäytetyönä yhteen firmaan sellaista tietokantasovellusta jolla hallitaan yrityksen omistamien kiinteistöjen tietoja. Olen jo tehnyt MySql-tietokannan lähes valmiiksi ja siinä ei ole mitään epäselvää, mutta nyt minun pitäisi toteuttaa jonkinlainen web-käyttöliittymä jolla eri käyttäjät pääsevät selaamaan ja lisäämään tietoja.
Olen vääntänyt kirjoista löytyneiden esimerkkien pohjalta joitain lomakkeita, mutta kun en aiemmin ole php:n kanssa paljon ollut tekemisissä, niin en oikein osaa tehdä juuri sellaisia lomakkeita mitä tarvisin. Ja kun opinnäytetyöni ei sisällä kuin tietokannan tekemisen ja käyttöliittymän suunnittelu on sen ulkopuolinen asia, niin ajattelin että onko tähän mitään ns. "helpompaa" keinoa kuin vain opiskella perusteellisesti php:n ja mysql:n yhteiskäyttö?
Mitä cms:t eli sisällönhallintajärjestelmät käytännössä tekee? Latasin koneelle Textpatternin, kun jossain törmäsin siihen että nämä ohjelmat ovat kytköksissä Mysql-tietokantaan. En nyt tajua, että auttaako tämä ohjelma minun käyttöliittymän teossa mitenkään, vai onko se vain tarkoitettu ns. normaaleiden sivujen tekoon (blogit ym.)? Ongelmani on siis se, että en osaa koodata php:llä lomakkeita joissa samassa lomakkeessa on monen eri asian yhteydessä alasvetovalikoita joista valitaan tietokannan toisessa taulussa olevia tietoja toiseen tauluun ym.
Siis selkeämmin ilmaistuna esim. kiinteistön lisäyslomakkeessa olisi kentät:
kiinteistön nimi, tontti, valmistaja.
Nimi syötettäisiin tekstinä, mutta tontti pitäisi saada valittua alasvetovalikosta, johon tonttien nimet tulisi tonttitaulusta samoin kuin valmistaja pitäisi saada valittua alasvetovalikosta johon tiedot tulisi yritystaulusta.
Pitääkö nämä vain opetella tekemään vai onko siihen mitään ohjelmaa joilla ne helposti saisi tehtyä ilman hirvittävää php-tuntemusta? PHP Editorilla olen kirjoittanut muutamia lomakkeita soveltaen kirjojen esimerkkejä ja ohjelma kyllä näyttäisi antavan valmiita koodeja painikkeiden ym. tekemiseen mutta niissäkin pitää tajuta aika paljon itse koodista että ne osaa laittaa hakemaan tiedot tietokannasta.
Olisiko jossain esimerkiksi ohjeita enemmänkin erilaisten lomakkeiden tekoon, jotka siis käsittelevät tietokantaa vai pitääkö minun nyt vain kiltisti lukea kaikki opukset alusta loppuun? Tietokanta on todella iso ja minulla on ihan hirveä työmäärä tehdä kaikki tarvittavat lomakkeet, niin halusin vain tietää olisiko siihen jokin vähemmän vaikea ratkaisu.
Kiitokset mahdollisista vastauksista :)
Sinulla on siis tietokannassa taulu kiinteistot, jossa on käyttäjän täytettäviä kenttiä ovat kiinteistön nimi, tontti, valmistaja. Yksi tapa on siirtää lomakkeen luonti pois kokonaan toiminnallisuudesta omaan lomakeluokkaan, josta sopivia kenttiä kutsutaan tarpeen mukaan.
<?php /* Liitetään lomakeluokka mukaan */ require("luokat/Clomake.php"); /* Luodaan uusi lomake, sekä annetaan sille parametriksi lomakkeen id */ $lisaa = new Clomake( "kiinteisto" ); /* Luodaan text tyyppinen input olio */ $teksti[] = new Ctext( "nimi", true, "", "Kiinteistön nimi" ); $lisaa -> asetaElementit( $teksti ); $lisaa -> piirraLomake( "kasittelija.php", "post ); ?>
Lomakekenttiä voi luoda mielivalatisen määrän, kunhan ne ovat taulukossa $teksti. Seuraavaksi tulee vain koodata nuo ylläolevat luokat Clomake.php tiedostoon. Voisin lisätä sen tänne koodivinkiksi, kunhan saan aikaiseksi. Näidenkin avulla joudut hieman koodaamaan php:ä, jotta saat kantaan tallennuksen toimimaan, mutta ainakaan lomakkeita ei tarvitse käsin kirjoitella.
Esimerkki ylläolevasta löytyy profiilista löytyvältä sivustolta esimerkiksi palaute.php sivulta. Siellä koko lomake on luotu lennossa sivun generoimisen yhteyessä. Sivulla oleva kenelle on valintalista, jonka tietoja ei tosin haeta tietokannasta, mutta sellaiseenkin tuo toki sopii aivan mainiosti.
Opettele PHP (tai käytä jotain tutumpaa kieltä). Ilman ohjelmointitaitoa et valitettavasti voi millään saada tietokannoillesi mielekästä käyttöliittymää. Web-käyttöliittymien tekeminen (varsinkin tietoturvallisesti) on lähes aina huomattavasti isompi työ kuin tietokannan luominen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.