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

Problemcic sa programcicem

[es] :: PHP :: Problemcic sa programcicem

Strane: < .. 1 2 3

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

VladaSu

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



+218 Profil

icon Re: Problemcic sa programcicem25.01.2012. u 09:23 - pre 149 meseci
Evo ti koristan link sa istim problemom kao sto ti imas samo tamo su drzave a kod tebe grupe.

http://www.elitesecurity.org/t444600-Baze-za-turisticku-agenciju
[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.166.*



+2 Profil

icon Re: Problemcic sa programcicem25.01.2012. u 18:33 - pre 149 meseci
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));



 
 
Odgovor na temu

VladaSu

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



+218 Profil

icon Re: Problemcic sa programcicem26.01.2012. u 11:24 - pre 149 meseci
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 :)

[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.161.*



+2 Profil

icon Re: Problemcic sa programcicem26.01.2012. u 11:54 - pre 149 meseci
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.

[Ovu poruku je menjao Miro Spiro dana 26.01.2012. u 13:04 GMT+1]
 
Odgovor na temu

VladaSu

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



+218 Profil

icon Re: Problemcic sa programcicem26.01.2012. u 13:18 - pre 149 meseci
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...
[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.161.*



+2 Profil

icon Re: Problemcic sa programcicem26.01.2012. u 18:37 - pre 149 meseci
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>

 
 
Odgovor na temu

[es] :: PHP :: Problemcic sa programcicem

Strane: < .. 1 2 3

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

Postavi temu Odgovori

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