Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kreiranje baze za evidenicju i php

[es] :: PHP :: PHP za početnike :: kreiranje baze za evidenicju i php

[ Pregleda: 1578 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Skuffman
Hrvatska

Član broj: 38315
Poruke: 27
*.mobile.carnet.hr.



+1 Profil

icon kreiranje baze za evidenicju i php02.03.2010. u 17:04 - pre 172 meseci
Pozdrav,

Evo krenuo sam pomalo uciti php i mysql te krecem razvijati jednu manju aplikaciju za vođenje evidencije određenih stvari

Razmišljam kako postaviti bazu, pa bih volio cuti vasa misljenja

Dakle radi se o aplikakciji kojom bi vodio evidenciju o pojedinom klijentu i uslugama koje odrađujem za njih..

Naprimjer imam klijent 1, klijent 2, klijent 3... i sad za klijenta vodim evidenciju kad sam bio kod njega kakvo je stanje naprimjer voca koje mu prodajem naprimjer koliko jabuka ima,koliko banana i tako dalje

znaci kreirao bi tablicu klijenti sa atributima (id,ime,adresa)
usluge (id,banane,kruske,jabuke,datum)

Cilj je da za svakoga klijenta mogu vise podataka unjeti..znaci na odredeni datum kakvo je stanje banana krusaka i jabuka

Kako sam tek krenuo sa mysqlom i php-om nisam siguran jel id usluga i id klijenata mora nuzno biti isti jer sam razmisljao da ih na takav nacin povezem i da na takav nacin radim ispis podataka( iskoristim join)

Sad to sam cak i uspio napraviti da imam "dinamičan" link te kad se klikne na klijenta1 on uzme njegov id preko GET metode i za taj id ispise sve podatke.

Osim sto nisam siguran jel baza dobro zamisljena, brine me sljedeca vrlo btina stvar koja ima veze sa php-om

Kako rijesiti da dodam novog klijenta a da se za njega automatski kreira taj "dinamičan" link koji vodi prema praznoj tablici usluge(id,banane,kruske...praznoj jer je klijent tek kreiran i slogova nema u tablici) i da naprimjer odma postoji link "dodaj" gdje ce se bas za tog klijenta moc dodati podaci.. ? Uspio sam napraviti dodavanje ali samo za određenog klijenta...Znaci to bi trebalo biti automatski kreirano

Vjerovatno sam zakomplicirao ali zbunjen sam jer sam tek krenuo sa ucenjem a ovo mi je zelja napraviti..

Hvala unaprijed na razumjevanju
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
109.106.244.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: kreiranje baze za evidenicju i php02.03.2010. u 19:44 - pre 172 meseci
Evo nekoliko smernica/ideja ukratko, a ti pogledaj na dalje sam, pogledaj normalizacije baza kako idu.

- Tabela klijenti je na mestu

- Potrebna ti je tabela za 'usluge' koja ide recimo ovako
id_usluge, naziv_usluge

- potrebna ti je jos jedna vezna tabela, recimo 'veza_usluge_klijenti' sa poljima
fk_user_id, fk_usluge_id, datum, stanje

Sada ces unositi usluge kao poseban entitet u bazi, redom, jabuke, kruske, breskve, stavec...

onda samo dodas vezu (trenutno stanje) za tog korisnike, za to voce (uslugu), datum unosa i stanje na taj datum (za tog klijenta i tu specificnu uslugu)

Ovako nisi ogranicen niti kolicinom usloga, mozes ih dinamicki dodavati/menjati po potrebi.
Ovde ce ti biti potrebne neke kljucne reci, kao sto su: normalizacija baza, join-ovanje tabela u select upitu (ovde mislim da je LEFT JOIN prava stvar).
REcimo nesto odavde:
http://www.pro-mil.hr/online/?A=T&T=Sql&ST=3

Usput, sva ID polja su kljucevi, i u ne-veznim tabelama su auto-increment (vezano za tvoj deo pitanja oko biranja novog ID-ja, to baza radi automatski za tebe onda).
U veznoj tabeli oba polja fk_user_id i fk_usluge_id su kao jedan kljuc, ili dupli kljuc zamisli ga tako ali nijedno nije auto-increment jer to rade maticne tabele da se tako izrazim. (prefix FK_ je samo kozmeticke prirode, oznacava Foreign Key, da ti bude lakse pri pregledu baze da znas da su to strani kljucevi, iz nekih drugih tabela).

Kreni ovom putanjom pa nastavi sa pitanjima kad zapne.

 
Odgovor na temu

Skuffman
Hrvatska

Član broj: 38315
Poruke: 27
*.mobile.carnet.hr.



+1 Profil

icon Re: kreiranje baze za evidenicju i php02.03.2010. u 22:06 - pre 172 meseci
Hvala puno na odogovoru, mislim da sam razumio odredene stvari, procitati cu tekst jos 2-3 puta pa krecem pomalo istrazivati ;)


Zahvaljujem na odvojenom vremenu
 
Odgovor na temu

Skuffman
Hrvatska

Član broj: 38315
Poruke: 27
*.mobile.carnet.hr.



+1 Profil

icon Re: kreiranje baze za evidenicju i php07.03.2010. u 09:08 - pre 172 meseci
Evo nesto sam uspio napraviti, ali naravno da sam zapeo

zelim napraviti izbor preko select boxa.. kao što već postoji da se izabere klijent i naprimjer ispise za tog klijenta evidencija..ali sto ako klijent ima vise kopirki (ovo je realan slucaj) volio bi napraviti 2 select boxa gdje u prvom izaberem klijenta a u drugom kopirku (ukoliko ih klijent ima vise) za koju zelim unjeti evidenciju :

Baza je do sada rijesena ovako

klijent (id,ime)
evidencija (id,klijent_id,datum,toner,fuser,broj_kopija)

razmisljao sam dodati novu tablicu kopirke koja ce imati atribute (id,klijent_id,naziv) ovaj klijent id da bi se znalo da bas njemu pripada ta kopirka
i onda u tablicu evidencija dodati i kopirka_id da se zna za koju kopirku je ta evidencija..

Ali vjerovatno grijesim oko baze pa slobodno mi predlozite eventualne izmjene..

I sad nije mi jasno kako bi to mogao u php-u rijesiti da kad ja izaberem u prvom select boxu marko da on u drugom odma ponudi samo kopirke koje ima marko, i onda po odabiru klikom na submit vrši ispis

evo trenutni kod :

Code:
<?php
// spajanje na bazu
mysql_connect("localhost","root","root");
mysql_select_db("test");

?>

<table width="760" border="0" cellpadding="1" cellspacing="1">

    <tr>

    <td><b>Datum</b></td>
    <td><b>Fuser</b></td>
    <td><b>Toner</b></td>
    <td><b>Broj kopija</b></td>

    </tr>

<?

if ($_GET[izbor] == 1) {
       // Odabir ili unos novog klijenta
       if ($_GET[novi_klijent] != "")
       {
               // Unos novoga klijenta
               mysql_query("insert into klijenti (ime) values (\"".addslashes($_GET[novi_klijent])."\")");
               $q = mysql_query("select last_insert_id()");
               $sidarr = mysql_result($q,0);
               $klijent_id = $sidarr[0];
               mysql_query("insert into evidencija (datum,fuser,toner,broj_kopija,klijent_id) values 
               (\"".addslashes($_GET[datum])."\",\"".addslashes($_GET[fuser])."\",\"".addslashes($_GET[toner])."\",\"".addslashes($_GET[broj_kopija])."\", $klijent_id)");
       }
       else 
       {
              //Ukoliko je postojeci klijent izabran, radi ovo (unos evidencije)
               $klijent_id = $_GET[stari_klijent];
               mysql_query("insert into evidencija (datum,fuser,toner,broj_kopija,klijent_id) values 
               (\"".addslashes($_GET[datum])."\",\"".addslashes($_GET[fuser])."\",\"".addslashes($_GET[toner])."\",\"".addslashes($_GET[broj_kopija])."\", $klijent_id)");
       }
       $result = "Unos je uspjesno izvrsen";
}

if ($_GET[izbor] == 2) 

{    // Ispis svih evidencija klijenta

       $result = "Evidencije: <br /><br />";
       $q = mysql_query("select klijenti.ime,evidencija.datum,evidencija.fuser,evidencija.toner,evidencija.broj_kopija from klijenti, 
       evidencija "."where klijenti.id = evidencija.klijent_id and klijenti.id = $_GET[stari_klijent]");
       while ($row = mysql_fetch_assoc($q)) {
        ?>
        <tr>
        <td><?=$row["datum"]?></td>
        <td><?=$row["fuser"]?></td>
        <td><?=$row["toner"]?></td>
        <td><?=$row["broj_kopija"]?></td>
        </tr>
        <?
       }
}

// Kreiranje padajuceg izbronika za sve postojece klijente

$q = mysql_query("select * from klijenti");
       while ($row = mysql_fetch_assoc($q)) {
               $klijenti .= "<option value = $row[id]>$row[ime]";
       }

//////////////////////////////////////////////////////////////////
?>

<head>
<title>Unos, ispis klijenata i evidencije</title>
    <link media="all" type="text/css" href="tablica.css" rel="stylesheet">
</head>
<body bgcolor=white>

<form>Izaberite klijenta<select name=stari_klijent><?php print ($klijenti); ?>
</select>ili unesite novog klijenta <input name=novi_klijent><br>
<p>UNOS EVIDENCIJE</p>
Unesite datum<input name=datum><br>
Stanje fusera<input name=fuser><br>
Stanje tonera<input name=toner><br>
Unesite broj kopija<input name=broj_kopija><br>
<input type=submit><input type=hidden name=izbor value="1"></form><hr>
Ispis evidencija po klijentima
<form>Izaberite klijenta <select name=stari_klijent><?php print ($klijenti); ?></select>
<input type=submit><input type=hidden name=izbor value="2"></form><hr>
<?print ($result); ?>
</body>



Lijep pozdrav
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: kreiranje baze za evidenicju i php

[ Pregleda: 1578 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.