Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 45 odgovora
  • 9.543 pregleda

Najnovija ↓

Re: Problemcic sa programcicem 25.01.2012. u 19:33 · pre 179 meseci #42
Evo sada sam uradio po textu sad da li je uredu ili ne nisam siguran.

tabela grupe lijekova

Code (sql):


CREATE TABLE grupelijekova
(  grupalijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
   grupalijekova  CHAR(250),
   glavnagrupalijekova_id CHAR(250),
   podgrupalijekova_id CHAR(250),
   PRIMARY KEY (grupalijekova_id));

 




tabela glavnagrupalijekova

Code (sql):


CREATE TABLE glavnagrupalijekova
(  glavnagrupalijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
   glavnagrupalijekova CHAR(250),
   PRIMARY KEY (glavnagrupalijekova_id));

 


tabela podgrupelijekova

Code (sql):

CREATE TABLE podgrupelijekova
(  podgrupelijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
    podgrupalijekova CHAR(250),
    PRIMARY KEY (podgrupelijekova_id));

 


tabela vrstelijekova

Code (sql):

CREATE TABLE podgrupelijekova
(  podgrupelijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
    podgrupalijekova CHAR(250),
    PRIMARY KEY (podgrupelijekova_id));

 


tabela lijekovi
Code (sql):


CREATE TABLE lijekovi
( lijekovi_id INT(11)  NOT NULL AUTO_INCREMENT,
     grupelijekova_id CHAR(250),
     vrstelijekova_id CHAR(250),
     imelijeka CHAR(100),
     djelovanje longtext,
     indikacije longtext,
     doziranjeinacinprimjene longtext,
     kontraindikacije longtext,
     nezeljeniefekti longtext,
     posebnaupozorenja longtext,
     registriranilijekovi longtext,
     PRIMARY KEY (lijekovi_id));



 
Re: Problemcic sa programcicem 26.01.2012. u 12:24 · pre 179 meseci #43
Za vrstu lekova su progresno copy paste.

Drugo.
Pitanje je da li jedan lek moze da ima vise grupa. Ako je odgovor da onda si krenuo pogresnim putem.
Ne valja ti bas. Vidi se da si citao i pokusao da shvatis.

Sa grupama i podgrupama je dodatna komlikacija jer je to jedna te ista tabela.


Ali recimo da odvojimo u 2 tabele. Grupe i podgrupe. I kada to shvatis onda cemo to prevesti u jednu tabelu jer su to dve totalno identicen tabele pa tom logikom moze da bude jedna tabela.


Code (sql):

CREATE TABLE  `grupa` (
  `grupa_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `naziv` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`grupa_id`)
) ENGINE=InnoDB;

CREATE TABLE  `pogrupa` (
  `pogrupa_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `grupa_id` INT(10) UNSIGNED NOT NULL,
  `naziv` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`pogrupa_id`)
) ENGINE=InnoDB
 


A ovako ces dobiti grupe sa podgrupama:

Code (sql):

SELECT *
FROM grupa AS g
LEFT JOIN pogrupa AS p ON g.grupa_id = p.grupa_id
 


neke varijacija ovog sql-a:

Code (sql):

SELECT g.*, p.*
FROM grupa AS g
LEFT JOIN pogrupa AS p ON g.grupa_id = p.grupa_id;

SELECT *
FROM grupa g
LEFT JOIN pogrupa p ON g.grupa_id = p.grupa_id;

SELECT g.grupa_id, g.naziv AS naziv_glavne_grupe, p.podgrupa_id, p.naziv AS naziv_pogrupe
FROM grupa AS g
LEFT JOIN pogrupa AS p ON g.grupa_id = p.grupa_id;

 



Ovo je slucaj kada jedna podgrupa moze da pripada SAMO jednog grupi.

Pitanja:

1. Da li si shvatio ovo?
2. Po cemu se razlikuje tabela podgrupa i grupa?
3. Ako si shvatio po cemu se razlikuju da li bi mogao to spojiti u jednu tabelu i kako ako moze?
4. Da li imas ideju kako napraviti da podgrupa moze da pripada jednoj ili vise grupa?

Ovo prelazi vise u neki mali tutorijal SQL-a. Otisli smo od teme i vise ne pripada PHP forumu.
Pomazem ti ovako detaljno jer vidim da zelis da naucis a ne da dobijes gotovo resenje sto je retko ovde videti :)
Potpis
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
Re: Problemcic sa programcicem 26.01.2012. u 12:54 · pre 179 meseci
izmenjeno 1 put, poslednji put Miro Spiro 26.01.2012. u 13:04
  1. Miro Spiro26.01.2012. u 13:04zapis iz teksta poruke
#44
Hm vidim da sam zeznuo vrstelekova


Code (sql):


CREATE TABLE vrstelijekova
(  vrstelijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
    vrstalijeka longtext,
     PRIMARY KEY (vrstelijekova_id));


 



Jedan lijek ima samo jednu grupu,glavnu grupu podgrupu i vrstu . Znaci jedan lijek od ovoga svega trebao bi da ima samo jedan ID.Sam lijek iz baze moze jedino da bude izbrisan ne moze nikako da predje u drugu grupu itd. Cena nema u bazi te se ni to ne moze da mijenja. Naglasak je na fajlu results.php koji vrsi sada pretragu baze. Sama baza ima nekih 2 MB a a njenog update-a nema. Jednostavno prilikom ponovne registracije lijekova cijela baza mora ici drop i onda ponovno unositi posto se indikacije ,kontraindikacije pa cak i imena nekada mijenjaju.


Problem je sljedeci



Uploaded with ImageShack.us


tu je sve nacrtano kako sam ja zamislio. Problem je taj da jednostavno neke vrste lijekova se ne ponavljaju cesto tj mozda za 2-3 lijeka i onda me buni ta li da to stavljam posebno ili da ostavim u tabeli lijekovi kao i neke podgrupe lijekova koje se ponavljaju ali jednostavno ne toliko ceste, a grupe i glavna grupa definitivno hocu da stavim u posebnu tabelu.Naravno sad ces reci da sve sto se ponavlja treba posebno ali to je onda veci problem za onoga ko unosi. Jeste da se ovdje ponavlja 2 puta stomatoloski lijekovi ali to je iznimka i vrlo se rijetko to desava. Nadam se da sam napisao razumljivo moje objasnjenje.
Re: Problemcic sa programcicem 26.01.2012. u 14:18 · pre 179 meseci #45
Prosto ne mogu da verujem da ako se jedan lek menja ili ponovo registruje da cela baza ide u drop.
Mozda taj lek ali baza ne verujem.
Za lek ima logike jer to vise nije onaj lek.
Za vrstu si lepo odradio, jos samo da za grupe da shvatis...
Koliko ima vrsta lekova a koliko lekova?
Ako imas 100 vrsta a 5000 lekova onda vredi stvaljati.
Mozda vredi i da imas i 1000 vrsta a 5000, odnos 1:5.
A vec da imas 4000 vrsta a 5000 lekova onda mozda i ne vredi a mozda i vredi. Sve zavisi od pretrage itd...
Potpis
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
Re: Problemcic sa programcicem 26.01.2012. u 19:37 · pre 179 meseci #46
Podgrupa pripada samo jednoj grupi ne moze da pripada vise grupa.Evo sto sam sada napravio.

tabela grupe lijekova

Code (sql):

CREATE TABLE grupelijekova
(  grupalijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
   grupalijekova  CHAR(250),
   PRIMARY KEY (grupalijekova_id));
 




tabela glavne grupe lijekova

Code (sql):

CREATE TABLE glavnagrupalijekova
(   glavnagrupalijekova_id INT(11) NOT NULL AUTO_INCREMENT,
    glavnagrupalijekova  CHAR(250) NOT NULL,
    PRIMARY KEY (glavnagrupalijekova_id));
 



tabela podgrupe lijekova

Code (sql):

CREATE TABLE podgrupelijekova
(  podgrupelijekova_id INT(11)  NOT NULL AUTO_INCREMENT,
   glavnagrupalijekova_id INT(11)UNSIGNED NOT NULL,
   grupalijekova_id INT(11)UNSIGNED NOT NULL,
   podgrupalijekova CHAR(250),
   PRIMARY KEY (podgrupelijekova_id));
 



Lijekova nema toliko ima ih po mojoj procjeni nekih 1000 ( sam registar je sada samo u stampanoj verziji te moram rucno sve izbrojati staru bazu sam ispustio).

Ovo je bio kod za pretragu stare baze

Code (php):

<link href="favicon.ico" rel="SHORTCUT ICON">
<html>
<head>
  <title>Registar lijekova 1.0.0</title>
</head>
<body>
<h1 align="center">Registar lijekova-rezultati pretrage</h1>
<?php
  // create short variable names
  $searchtype=$_POST['searchtype'];
  $searchterm=trim($_POST['searchterm']);

  if (!$searchtype || !$searchterm) {
     echo 'Niste unijeli sve potrebne detalje.  Vratite se i pokusajte ponovo.';
     exit;
  }

  if (!get_magic_quotes_gpc()){
    $searchtype = addslashes($searchtype);
    $searchterm = addslashes($searchterm);
  }

  @ $db = new mysqli('localhost', 'root', '', 'registar lijekova');

  if (mysqli_connect_errno()) {
     echo 'Error: Could not connect to database.  Please try again later.';
     exit;
  }

  $query = "select * from lijekovi where ".$searchtype." like '%".$searchterm."%'";
  $result = $db->query($query);

  $num_results = $result->num_rows;

  echo "<p>Broj nadjenih lijekova: ".$num_results."</p>";

  for ($i=0; $i <$num_results; $i++) {
     $row = $result->fetch_assoc();
     echo "<p><strong>".($i+1).". Grupa lijekova: ";
     echo htmlspecialchars(stripslashes($row['grupalijekova']));
     echo "</strong>Glavna grupa lijekova: ";
     echo stripslashes($row['glavnagrupalijekova']);
      echo "</br />Podgrupa lijekova: ";
     echo stripslashes($row['podgrupalijekova']);
      echo "</br />Vrsta lijeka: ";
     echo stripslashes($row['vrstalijeka']);
      echo "</br />Ime lijeka: ";
     echo stripslashes($row['imelijeka']);
      echo "</br />Djelovanje: ";
     echo stripslashes($row['djelovanje']);
      echo "</br />Indikacije: ";
     echo stripslashes($row['indikacije']);
      echo "</br />Doziranje i nacin primjene: ";
     echo stripslashes($row['doziranjeinacinprimjene']);
      echo "</br />Kontraindikacije: ";
     echo stripslashes($row['kontraindikacije']);
      echo "</br />Nezeljeni efekti: ";
     echo stripslashes($row['nezeljeniefekti']);
      echo "</br />Posebna upozorenja: ";
     echo stripslashes($row['posebnaupozorenja']);
     echo "Registrirani lijekovi: ";
     echo stripslashes($row['registriranilijekovi']);
     echo "</p>";
  }

  $result->free();
  $db->close();

?>
</body>
</html>

 
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme