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

Problemcic sa programcicem

[es] :: PHP :: Problemcic sa programcicem

Strane: 1 2 3

[ Pregleda: 6051 | Odgovora: 45 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.202.*



+2 Profil

icon Re: Problemcic sa programcicem12.01.2012. u 10:34 - pre 150 meseci
Gledao sam kod i gledao i bilo je greski u nedostatku slova ali sam to uspjesno popravio. Naravno i dalje nije radilo. Tada sam uradio sljedece. Uzeo sam ovaj php kod izbrisao lijekove i ubacio sljedece stavke isbn,author,title i price posto je ovo iz knjige razvoj PHP aplikacija za web. Nakon toga probam upload na bazu registar lijekova i opet nista te pars error itd. Nakon toga izvadim iz orginalne baze iz knjige cijelu tablicu books i stavim u registar lijekova sa onim kodom sto sam radio + dodatni dio koda koji ste mi ovdje napisali i voila radi.

Code (sql):


CREATE TABLE books
(  isbn CHAR(13) NOT NULL PRIMARY KEY,
   author CHAR(50),
   title CHAR(100),
   price FLOAT(4,2));

 



Ovo je iz knjige tablica books.Ne razumijem zato u tablicu koja je ovdje prije stavljena nece a u ovu hoce ovdje su 4 polja a tamo 11 ali ja mislim da to nije razlog jer gledao sam i u php helpu i mysql helpu i ne vidim neki razlog zbog kojeg ovo nece da radi.Cim promjenim isbn itd u glavna grupa lijekova u poljima u php-u izbaci da sva polja moraju biti popunjena.

[Ovu poruku je menjao Miro Spiro dana 12.01.2012. u 12:10 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem12.01.2012. u 12:57 - pre 150 meseci
Citat:
Miro Spiro: Gledao sam kod i gledao i bilo je greski u nedostatku slova ali sam to uspjesno popravio. Naravno i dalje nije radilo.

Kako mi da znamo zasto nije radilo ako nisi postavio kod? Kazem ti da provereno radi ako se svi navedeni nedostaci isprave. Ocigledno da nisi sve ispravio pa bi bilo lepo da postavis kod da vidimo zasto ne radi.

Citat:
Miro Spiro: Tada sam uradio sljedece. Uzeo sam ovaj php kod izbrisao lijekove i ubacio sljedece stavke isbn,author,title i price posto je ovo iz knjige razvoj PHP aplikacija za web. Nakon toga probam upload na bazu registar lijekova i opet nista te pars error itd.

Opet, kakav kod, kakva greska?

Da li ima 4 ili 11 kolona tabela nema veze. Nisi nam nista sa time pomogao da ti resimo problem.

Konkretno svaki put kada nesto uradis postavi i php i sql create table code.

Koji php editor koristis? Pitam jer vecina novijih php editora ima autocomplite pa ne mozes da pogresis slovo pri pisanju varijabli, a to ti je greska u svakom postu koji si ostavio.
Onaj kod koji sam ostavio radi kada se isprave greske koja sam napisao da su greske.
Namerno sam ostavio sa greskama kako bi znao gde gresis i da znas da otklonis greske.
Bitno je i da znas da kada ti php javi neki error ili warning da znas zasto ti je to javio.

[Ovu poruku je menjao VladaSu dana 12.01.2012. u 14:40 GMT+1]
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.202.*



+2 Profil

icon Re: Problemcic sa programcicem12.01.2012. u 17:10 - pre 150 meseci
Editor je PHPEdit ili Dreamweaver. Kod nisam postavljao jer je to prijasnji kod koji sam vec prije stavio ovdje. Znaci kad dodam ili promijenim naziv varijable opet krene greska da sva polja nisu popunjena BEZ javljanja ikakve greske jednostavno nece (naravno da sam promijenio naziv svugdje i u HTML-u i bazi).

Code (php):


<html>
<head>
  <title>Book-O-Rama Book Entry Results</title>
</head>
<body>
<h1>Book-O-Rama Book Entry Results</h1>
<?php
 
 function getPost($var, $default = "", $escape = true)
{
    $value = isset($_POST[$var]) ? $_POST[$var] : $default;
    return $escape ? mysql_real_escape_string($value) : $value;
}
// contact to database
$connect = mysql_connect("localhost", "root", "") or die ("Error , check your server connection.");
mysql_select_db("registar lijekova");

//Get data in local variable
$v_isbn=getPost('isbn');
$v_author=getPost('author');
$v_title=getPost('title');
$v_price=getPost('price');

// check for null values
if (empty($v_isbn) || empty($v_price))
echo "All fields must be entered, hit back button and re-enter information";
else{
$query="insert into books(isbn,author,title,price) values('$v_isbn','$v_author','$v_title','$v_price')";
mysql_query($query) or die(mysql_error());
echo "Your message has been received";
}

?>
</body>
</html>


 
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem12.01.2012. u 22:12 - pre 150 meseci
Kako sada da ti ispravim kod koji ne radi kada si ti stavio drugi kod koji radi?
Postavi poslednji kod koji ti ne radi, i php i sql.

Code (php):

<?php
function getPost($var, $default = "", $escape = true)
{
     $value = isset($_POST[$var]) ? $_POST[$var] : $default;
     return $escape ? mysql_real_escape_string($value) : $value;
}
// contact to database
$connect = mysql_connect("localhost", "root", "") or die ("Error , check your server connection.");
mysql_select_db("registar lijekova");

//Get data in local variable
$v_glavna_grupa_lijekova=getPost('glavna_grupa_lijekova');
$v_podgrupa_lijekova=getPost('podgrupa_lijekova');
$v_vrsta_lijeka=getPost('vrsta_lijeka');
$v_ime_lijeka=getPost('ime_lijeka');
$v_djelovanje=getPost('djelovanje');
$v_indikacije=getPost('indikacije');
$v_doziranje_i_nacin_primjene=getPost('doziranje_i_nacin_primjene');
$v_kontraindikacije=getPost('kontraindikacije');
$v_nezeljeni_efekti=getPost('nezeljeni_efekti');
$v_posebna_upozorenja=getPost('posebna_upozorenja');
$v_registrirani_lijekovi=getPost('registirani_lijekovi');


// check for null values
if (!empty($v_glavna_grupa_lijekova) || !empty($v_registrirani_lijekovi))
echo "All fields must be entered, hit back button and re-enter information";
else{
$query="insert into books(glavna_grupa_lijekova,podgrupa_lijekova,vrsta_lijeka,ime_lijeka,djelovanje,indikacije,doziranje_i_nacin_primjene,
kontraindikacije,nezeljeni_efekti,posebna_upozorenja,registirani_lijekovi) values
('$v_glavna_grupa_lijekova','$v_podgrupa_lijekova','$v_vrsta_lijeka','$v_ime_lijeka','$v_djelovanje'
,'$v_indikacije','$v_doziranje_i_nacin_primjene','$v_kontraindikacije','$v_nezeljeni_efekti','$v_posebna_upozorenja','$v_registrirani_lijekovi')"
;

mysql_query($query) or die(mysql_error());
echo "Your message has been received";
}
exit;
?>
 


Code (sql):

CREATE TABLE `books` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `glavna_grupa_lijekova` CHAR(13) DEFAULT NULL,
  `podgrupa_lijekova` CHAR(50) DEFAULT NULL,
  `vrsta_lijeka` CHAR(50) DEFAULT NULL,
  `ime_lijeka` CHAR(50) DEFAULT NULL,
  `djelovanje` CHAR(50) DEFAULT NULL,
  `indikacije` CHAR(50) DEFAULT NULL,
  `doziranje_i_nacin_primjene` CHAR(100) DEFAULT NULL,
  `kontraindikacije` CHAR(50) DEFAULT NULL,
  `nezeljeni_efekti` CHAR(50) DEFAULT NULL,
  `posebna_upozorenja` CHAR(50) DEFAULT NULL,
  `registirani_lijekovi` FLOAT(4,2) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
 



Pogledaj u cemu ti je razlika pa javi.

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.160.*



+2 Profil

icon Re: Problemcic sa programcicem14.01.2012. u 19:36 - pre 150 meseci
Napokon proradilo.Bio problem u imenima varijabli. Kako sam otvorio cijeli fajl u PHPEditu napokon je svugdje isto bilo napisano.Sad imam drugi problem. Naime problem je sto se neke glavne grupe poklapaju u imenu i stavi mi upozorenje da je isti naziv za određeno polje cim malo promijenim naziv bude sve spaseno.Sad ne znam kako da rijesim taj problem.Problem je u grupalijekova. Jos jednom hvala za pomoc za rijesavanje proslog problema.


Code (sql):


CREATE TABLE lijekovi
(   grupalijekova CHAR(100) NOT NULL PRIMARY KEY,
     glavnagrupalijekova CHAR(100),
     podgrupalijekova CHAR(50),
     vrstalijeka CHAR(50),
     imelijeka CHAR(50),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext
);


 



update :

razmisljao sam o foreign keys constraints ali mi je problem sto vecinom to predlazu za tabele sa istim column a kod mene je isti naziv unutar jedne tabele.Sad sam stavio PRIMARY KEY za polje koje se nigdje ne koristi tj . ne popunjavam ga u HTML-u vec pocinje od glavne grupe. Moje pitanje je moze li ovako jer sad sve radi nema problema.

Code (sql):


CREATE TABLE lijekovi
(  test INT(11)  NOT NULL AUTO_INCREMENT,
     grupalijekova CHAR(100),
     glavnagrupalijekova CHAR(100),
     podgrupalijekova CHAR(50),
     vrstalijeka CHAR(50),
     imelijeka CHAR(50),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext,
     PRIMARY KEY (test));



 




[Ovu poruku je menjao Miro Spiro dana 14.01.2012. u 21:03 GMT+1]

[Ovu poruku je menjao Miro Spiro dana 14.01.2012. u 21:07 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem16.01.2012. u 13:15 - pre 150 meseci
Nisi pogledao moj create sql. Ne treba tamo da ti stoji test nego id ili neki drugi logicniji naziv.
Taj id treba da koristis u drugim tabelama.
Npr.
Tabela
grupe_lekova(id, naziv)
sa vrednostima
1, naziv grupe x
2, naziv grupe y

i tabela
lekovi (id, naziv, grupa_id, cena)
sa vrednostima
1, lek1, 1, 100
4, lek2, 1, 120
77, lek3, 2, 10


U prevodu ovo ti znaci da imas dve grupe lekova sa nazivima 'naziv grupe x' koji ima svoj broj 1 i druga grupa 'naziv grupe u' koja ima svoj broj 2
Imas 3 leka prvi lek ima id 1,naziva se lek1 i pripada prvoj grupi lekova i cena mu je 100.
Drugi lek ima id 4 i naziv lek2 i isto pripada prvoj grupi i cena mu je 120
Treci lek ima id 77 i nazvi lek3 i pripada drugoj grupi i cena mu je 10.

Bitno je da napravis dobru bazu podataka kako bi ti kasniji rad bio laksi i sa sto manje gresaka.
Postavi sve tabele sto si napravio da vidimo jer ovo sto si zapoceo je lose.



[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.144.*



+2 Profil

icon Re: Problemcic sa programcicem19.01.2012. u 12:55 - pre 150 meseci
He he sredio sam bazu prije ali sam zaboravio da ovde stavim update: Evo kako sada izgleda

Code (sql):


CREATE TABLE lijekovi
(  id INT(11)  NOT NULL AUTO_INCREMENT,
     grupalijekova CHAR(100),
     glavnagrupalijekova CHAR(100),
     podgrupalijekova CHAR(100),
     vrstalijeka CHAR(150),
     imelijeka CHAR(100),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext,
     PRIMARY KEY (id));

 


Hvala jos jednom na pomoci.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem19.01.2012. u 16:04 - pre 150 meseci
grupalijekova char(100),
glavnagrupalijekova char(100),

ti treba da su u posebnoj tabeli i da stavis id iz te posebne tabele a ne da pises slovima.
Ako pogresis jedno slovo to ce biti druga grupa.
Ako hoces da menjas naziv grupe onda ces menjati na jednom mestu a ne na 100 mesta.
Brze ce raditi pretraga i grupisanje
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.144.*



+2 Profil

icon Re: Problemcic sa programcicem19.01.2012. u 16:59 - pre 150 meseci
Nisam skontao ovo za ID. Ovako ja imam u localhostu bazu registar lijekova i u njoj imam tablicu lijekovi ovu sto sam stavio.Sad da li da napravim jos jednu tablicu i u nju da stavim grupu i glavnu grupu lijekova sa id kako primary key te da onda id te dvije grupe stavim u ovu prvu tablicu ili nekako drugacije.Malo me buni to sto je u insert.php -u ubaceno da sve podatke unosi u lijekovi e sad ne znam kako bi ovo implementirao.

Unaprijed hvala
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem21.01.2012. u 00:49 - pre 150 meseci
Pogledaj odgovor http://www.elitesecurity.org/t443328-1#3033967 gde ti je sve objasnjeno kako treba da izgleda baza i dat ti je primer.

Ti treba da definises grupe lekova na posebnom mestu a onda kada unosis lek da ti se prikaze lista grupe lekova i da izaberes a ne da unosis.
Recimo kada radis telefonski imenik gde imas ime i prezime, grad i broj telefona.
Da li je bolje da imas listu gradova pa da izaberes grad iz liste nego da svaki put kucas grad.
I jedno ukucas Beograd, drugi put Bg, treci put pogresis pa ukucas Begrad, pa neko ukuca Belgrade ....
I sada ti treba da pretrazis sve brojeve u Beogradu, nema sanse. Da li ces znati da li da trazis Belgrade, Bg, Beogrd i 100 kombinacija skracenica i gresaka?
Umesto da u posebnoj tabeli imas Beograd sa id 1 i on kada unosi novi podatak u imeni izabere iz liste Beograd a ti znas da je to id 1 i to stavis u imenik
Pera Peric, 011-xxxxxxxx, Ulica, 1 (ovo ti je id za beograd).
I onda kada pretrazujes brojeve za Beograd pretrazujes tamo gde je id_mesta = 1 a ne BG ili bg ili Beograd ili Belgrade .....

I tu nema veze da li si pogresno uneo. Jer kada ispravis id ce ostati i dalje 1 i u tabeli brojeva i dalje id_mesta 1.

To se zove normalizacija baze.

Ukratko. Sve sto ti se ponavlja u jednoj tabeli kao tekst to mozes da stavis u drugu tabelu bez ponavljanja a da u prvoj tabeli stavis id iz druge tabele.

U neku krajnost mogao bi i ulice da stavis u posebnu tabelu ako ima potrebe.
Onda bi ovaj primer izgledao ovako:
1. Tabela Mesta:
mesto_id, naziv (npr vrednosti: 1, Beograd | 2, Novi Sad ....)

2. Tabela Ulice:
ulica_id, mesto_id, naziv (npr vrednost: 6, 1, Karadjordjeva)
Ovo znaci da ulica sa ulica_id 6 se nalazi u Beogradu jer ima mesto_id=1 a to vidis u tabeli mesta da je Beograd, da je mesto_id=2 to bi znacilo da se ulica nalazi u Novom Sadu.

3. Imenik
id, ime_prezime, broj, ulica_id (npr vrednost: 1, Pera Peric, xxxxx, 6)
Sto znaci da prvi red u imeniku je Pera Peric sa brojem telefona xxxxx a ulica_id mu je 6.
Odes u ulice tabelu i pogledas koje polje ima ulica_id=6 a to je ulica Karadjordjeva i u toj tabeli vidis da ta ulica ima mesto_id=1 i odes i pogledas da u tabeli mesta gde je mesto_id = 1 i vidis da je to Beograd.
Zakljucis da je to Pera Peric sa xxxx brojem telefona iz Karadjordjeve u Beogradu.


Ajd javi se kada skontas sta sam ti pricao.

Za pocetak mozes da napravis ove 3 tabele sa vrednostima koje sam ti rekao i onda daj ovde sta ti nije jasno.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.185.*



+2 Profil

icon Re: Problemcic sa programcicem21.01.2012. u 08:37 - pre 150 meseci
Hm skontao sam ja to ali ima jedan problem. Naime glavne grupe lijekova bi trebala da se onda definisu sa id om a te grupe su stalne tj. ona se ne mijenja. Problem je u tome sto npr za neko vrijeme moze da dodje neka druga grupa lijekova koja je do sada bila samo u klinickim istrazivanjima ili koja do sada nije bila u proizvodnji ( lijekovi u terapiji malignih oboljenja) itd. Beograd, Novi Sad itd su mjesta koja stalno postoje a samo se ulice mijenjaju ili dodaju a ovdje se moze desiti da dodje neka nova grupa koja do sada nije postojala.Jedina ideja mi je da to stavim po abedeceti pa da se slova abecede budu ponudjena a da se lijekovi i grupe onda upisuju.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem21.01.2012. u 11:11 - pre 150 meseci
Dodje nova grupa lekova i ti dodas novu grupu u tabelu grupe_lekova koja ce imati id npr 150. Tj sledeci slobodan id.
Ako neki lek pripada toj grupi onda ces staviti da ima id_grupe 150. To uopste nije problem. Nemoj da razmisljas o tome.
Prednost je sto recimo ako se promeni naziv ulica ti sada neces ici kod svakog u imeniku i menjati naziv ulice, pa se opet desi mogucnost da pogresis ako rucno radis ili da preskocis
ako prvi put nisi uneo naziv dobro.
Zamisli da se se sada Karadjordjeva ulica zove Petroviceva. Ti odes na ulicu koja ima id=6 i promenis naziv.
Sada svaki put kada nekoga gledas iz imenika koji ima ulicu id = 6 ti ces otici i pogledati da se sada ta ulica zove Petroviceva bez i da znas da se ikada zvala Karadjordjeva.
Ne menjas program, nista. I poenta je da ne moras menjati kod svakog korisnika.
Svedok si da se i nazivi gradova menjaju, Titograd, Titovo Uzice itd.... Nastaju novi gradovi i naselja.

Radio sam i ja sa lekovima pa drzava promeni marze za odredjenu grupu lekova ili promeni poresku stopu i bukvalno za deset sekundi bez greske
promenis max marzu ili poresku stopu.
A ako se budes drzao tvog nacina rada to nema sanse da ti ne prodje bez greske jer rucnim kucanjem grupe za 5-10.000 lekova mora da se desi greska.
Bice svakako greske jer ces neko pogresno uneti grupu ali to su minimalne greske.

Nemoj sumnjati razmisljati niti traziti rupe u ovome o cemu ja pricam jer ovo je tipican skoliski primer postavke baze koja ce ti smanjiti mogucnost greske prilikom unosa a ubrzace ti
bazu i pojednostaviti programiranje i prosiruje opcije za programiranje dok tvoj nacin postavke baze radi bas suprotno.
Recimo ako hoces da ogranicis marzu za odredjenu grupu lekova.
Ti vec imas tabelu grupa_lekova i samo dodas kolona max_marza. A kako ces to odraditi ako direktno kucas grupu? Nikako.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.237.*



+2 Profil

icon Re: Problemcic sa programcicem21.01.2012. u 18:33 - pre 150 meseci
Pozdrav. Malo sam radio pa sad evo sto sam napravio.Ne znam je li dobro ali se ja bar nadam da sam isao po onom uputstvu.

tabela slovoabecede (abecedni red lijekova)


Code (sql):


CREATE TABLE slovoabecede
( slovoabecede_id INT(11)  NOT NULL AUTO_INCREMENT,
      a   CHAR(50),
      b   CHAR(50),
      c  CHAR(50),
      d  CHAR(50),
     PRIMARY KEY (slovoabecede_id));


 


tabela grupa lijekova


Code (sql):


CREATE TABLE grupalijekova
(  grupalijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
   slovoabecede_id INT(11),
   alimentarnitraktimetabolizam CHAR(50),
   krvikrvotvorniorgani CHAR(50),
   kardiovaskularnisistem CHAR(50),
     PRIMARY KEY (grupalijekova_id));

 



tabela lijekovi

Code (sql):


CREATE TABLE lijekovi
(  id INT(11)  NOT NULL AUTO_INCREMENT,
     slovoabecede_id INT(11),
     grupalijekova_id INT(11),
     glavnagrupalijekova CHAR(100),
     podgrupalijekova CHAR(100),
     vrstalijeka CHAR(150),
     imelijeka CHAR(100),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext,
     PRIMARY KEY (id));


 



Htio sam jos da dodam tabelu glavna grupa lijekova ali za nju stvarno vecina nije ista za sve lijekove ima ponavljanja ali dosta se stvari mijenja od lijeka do lijeka.

hvala na pomoci i savjetima
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem22.01.2012. u 15:58 - pre 149 meseci
Sta ti je slovo abecede?

Idi ovom logikom za grupe.
1. Jedan tabela
2. Jos jedna kolona parent_id (id roditelja)

I u toj tabeli su ti i grupe i podgurpe.
Glaven grupe su ti one grupe ciji je parent_id=0
Podgrupa ti je ako ima parent_id = X
Sto znaci:
id = 1, naziv = glavna grupa, parent_id = 0
id = 2, naziv = podgrupa u glavnoj grupi, parent_id = 1

Da li si ovo shvatio?

To znaci da ce ti reci u lekovima kojoj grupi lekova pipada lek a u tabeli grupe lekova pronacices taj id i videti da li je to glavna grupa ili podgrupa i ako je podgrupa naci ces preko
parent_id koja mu je glavna grupa.

Trece dolazi ti do malog preklapanja u tvom trenutnom modelu baze.
Imas i u tabeli grupe i u tabeli lekovi slovoabecede_id.
Da li mozes da dodjes do koja je slovoabecede_id tako sto pogledas koja je grupa pa onda kada odes u grupu vidis koji je id slova?
Mozes, nema potrebe da na 2 mesta imas jedna te isti podatak jer ce taj id slova se zeznati preko grupe.
Direktno kada se stavlja je izuzetno kada se radi u velikim kolicinama podatak pa bi taj dodatan korak za traznje id-a slova usporio sistem.






[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.181.*



+2 Profil

icon Re: Problemcic sa programcicem22.01.2012. u 16:40 - pre 149 meseci
Dok sam radio prosle tabele mogu reci da sam razumio sve do ovoga trenutka. Znaci imam tabelu u bazi u kojoj se nalaze grupe lijekova +dodatna kolona parent_id x podgrupe lijekova .Sad koliko sam shvatio cilj mi je da u bazi imam vec unesene grupe lijekova kao i podgrupe lijekova koje mogu da znam po id-u odredjene grupe a onda unosim samo lijekove i id ove grupa i podgrupa lijekova. Znaci to bi trebalo da bude da ima vise tabelu u kojima se nalaze podatci a onda se pri pretrazi koristi vise tabela umjesto jedne te se smanjuje opterecenje.Sto se tice ponavljanja slova abecede to je tako jer ne razumijem kako da povezem sve tabele u jednu cjelinu:

Nisam razumio kako preko id-a.

Sadasnji Php unosi sve u tabelu lijekovi a sad bi trebalo da se pise novi php kod pored vec ovoga kojeg ima.

Da li bi to znacilo da se lijekovi unose direktno u mysql ili bi opet bio neki insert_php za unos.Posto sad imam jedan mali CMS u kojem mogu da unesem lijek,editujem ga ,brisem i pregledam a on se sav temelji na jednoj tabeli a sad to promijeniti ne razumijem kako.

U ovom trenutku smatram da znam kako napraviti pod 1 i 2 ali kako povezati to sa tabelom lijekovi ne razumijem kako preko id-a . Malo me u prijasnjem postu zbunilo to za cene.Njih nema naglasak je na indikacijama, kontraindikacijama,djelovanju ,tipu i imenu lijeka. Glavne grupe i podgrupe ja ne unosim njih jednostavno uradim copy-paste iz pdf-a. Tako da za sada gledao sam gresaka nema.

Znaci najvise me sada brine kako da povezem bazu sa PHP-om jer ovo sto sam sad uradio i zbog kojeg sam i poceo topic radi (ne znam ni ja kako ali radi).

Jos jednom hvala na pomoci.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem22.01.2012. u 19:05 - pre 149 meseci
Pitanja (posle i odgovor):
1. Tvoj slucaj: Sta znaci da lek ima grupu 1 i podgrupu 2?
2. Isti kao tvoj slucaj samo drugacije nazvan: Sta znaci da lek ima grupu 1 i grupu 2?
3. Moj slucaj: Sta znaci da lek pripada grupi 2 koja je podgrupa grupi 1?

Odgovori:
1. To prakticno znaci da ima dve grupe. Kako da znas sta je glavna grupa a sta podgrupa?
U tvom slucaju kada dodalis leku grupu i podgrupu onda kada nekim slucajem u buducnosti neka podgrupa promeni glavnu grupu ti ces morati svaki lek da proveris i promenis.
2. Ovo je tvoj slucaj samo promenjen naziv iz podgrupe i grupu i nista vise. Isti problemi.
3. Moj slucaj ako podgrupi promenis parent_id to znaci da ces automatski svim lekovima biti promenjena glavna grupa. Menjas na jednom mestu i siguran si da nece biti gresaka.


Sada ti pricam onako kako se u skoli uci modelovanje baze i kako bi trebalo.
U praksi zbog brzine cesto se menja to skolosko ucenje i takodje nekada je lakse i programirati.

Recimo, u ovom primeru lakse ti je da imas glavnu grupu id u podgrupa id odmah kod leka jer lakse dolazis do id-a i lakse filtriras i tako to ....
Ali dolazi problem tako sto rizikujes da se podaci poremete kada dodje do menjanje podgrupa i podgrupa.

Znaci ako nekada bezis od skolskog ucenja onda mozes da olaksas sebi programiranje i da ubrzas bazu podataka ali onda komplikujes odrzavanje i povecavas mogucnost gresaka.
Treba naci balans izmedju toga sto zavisi od toga sta ti zahteva aplikacija, klijent, kolicina podataka itd....


Kako povezati 2 tabele (ovo je primer kada nema podgrupe)

SELECT l.ime_leka, l.cena, gl.naziv_grupe
FROM lekovi l
LEFT JOIN grupa_lekova gl ON l.grupa_id=gl.id


LEFT JOIN je kljucan


A kako povezati ovu izmenjenu bazu....
CMS kao Joomla i slicne stvari ne sluze za ozbiljne sajtove koji imaju ovako specificne zahtebe.
Moze se i u Joomli praviti sve ali to je kao da od traktora pravis avion.

Dugorocno mnogo ti je bolje da ucis PHP i MySQL jer ce da ti se isplati a gotovi CMS-ovi ce ti doneti samo probleme od kojih ces bezati.

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.181.*



+2 Profil

icon Re: Problemcic sa programcicem22.01.2012. u 19:40 - pre 149 meseci
Cu da probam pa javim a sto se tice CMS-a nije gotovo rjesenje ja sam nesto copy-paste coda a nesto sam ja pisao tako da je bas prilagodjen( ne ulazim u sigurnost koda) ovoj bazi tj. programu.

Jos jednom hvala na pomoci i objasnjenju a ovo cu sutra probati pa stavim ovdje.
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.190.*



+2 Profil

icon Re: Problemcic sa programcicem23.01.2012. u 16:31 - pre 149 meseci
Evo sto sam sada napravio

grupalijekovi


Code (sql):


CREATE TABLE grupalijekova
(  grupa_id INT(11)  NOT NULL AUTO_INCREMENT,
    grupalijekova  CHAR(50),
    glavnagrupalijekova CHAR(50),
    parent_id INT(11) NOT NULL,
PRIMARY KEY (grupa_id));



 



lijekovi

Code (sql):


CREATE TABLE lijekovi
(  id INT(11)  NOT NULL AUTO_INCREMENT,
     podgrupalijekova CHAR(100),
     vrstalijeka CHAR(150),
     imelijeka CHAR(100),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext,
     PRIMARY KEY (id));


 
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Problemcic sa programcicem23.01.2012. u 21:09 - pre 149 meseci
Ne treba ti zajedno u tabeli grupe
grupalijekova char(50),
i
glavnagrupalijekova char(50),

jer ces do glavne grupe lekova doci preko parent id i znaces naziv.

U tabeli lekovi
podgrupalijekova char(100),
po ovom ti cela tabela grupa lekova ne treba jer tu unosis naziv a to ne zelis. Tu hoces da onosi id od grupe.
Nazvao si podgrupa ali tebe bas i ne zanim ovde da li je grupa ili podgrupa vec samo id i kada odes u tabelu grupe onda ces tamo vec skontati da li
je to grupa ili podgrupa i koji je naziv.


E sada.
Isto kao sto si odvojio grupe lekova tako mozes i vrste.
Ali to prvo kada sredis grupe.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Miro Spiro
serviser
Vemi medical doo

Član broj: 268301
Poruke: 161
92.36.198.*



+2 Profil

icon Re: Problemcic sa programcicem23.01.2012. u 21:50 - pre 149 meseci
Ovo u tabeli lijekova cu da odvojim ali sto se tice vrste tu je vec problem njih ima mnogo i obicno je jedna za nekoliko lijekova sad to unositi ne vidim korist od toga jer opet cu to vecinom morati da unosim rucno dok za grupe jedan unos je za nekih 50-100 lijekova. Gledao sam malo po webu kako su drugi napravili .

http://www.ivz.si/register/ Slovenci ne mogu tacno da odgonetnem ali koliko vidim ovo je html sa stranica sa podatcima i linkovi. Ne mogu da vidim nigdje neki konektor za bazu.


http://farmaco.agenziafarmaco.it/index_en.php e ovo je avion od aplikacije.Ovde se vidi sve sto si mi ti govorio da uradim u ovome primjeru. Razlika izmedju ove aplikacije jeste ta sto se ova sedmicno apdejtuje nalaze se cijene, pdv itd dok se moja sad kad se unese nece updateovati jedan veci period zbog toga smatram da me ova moja baza postojeca sada zadovoljava. Inace koliko vidim ovo je pravo odrađen program.Naravno ne znam sto se nalazi pod haubom.

grupelijekova

Code (sql):


CREATE TABLE grupalijekova
(  grupa_id INT(11)  NOT NULL AUTO_INCREMENT,
    grupalijekova  CHAR(50),
    parent_id INT(11) NOT NULL,
PRIMARY KEY (grupa_id));

 


lijekovi

Code (sql):


CREATE TABLE proba.lekovi
(  id INT(11)  NOT NULL AUTO_INCREMENT,
     podgrupalijekova_id INT(11),
     vrstalijeka CHAR(150),
     imelijeka CHAR(100),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext,
     PRIMARY KEY (id));



 



Pozz

[Ovu poruku je menjao Miro Spiro dana 23.01.2012. u 23:09 GMT+1]
 
Odgovor na temu

[es] :: PHP :: Problemcic sa programcicem

Strane: 1 2 3

[ Pregleda: 6051 | Odgovora: 45 ] > FB > Twit

Postavi temu Odgovori

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