Novo

Forum kao aplikacija na telefonu

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

kako da na osnovu pretrage upisem promenljivu... procitajte detaljnije

  • 8 odgovora
  • 3.284 pregleda

Najnovija ↓

kako da na osnovu pretrage upisem promenljivu... procitajte detaljnije 16.07.2009. u 11:42 · pre 210 meseci
izmenjeno 1 put, poslednji put mayana 16.07.2009. u 11:54
  1. mayana16.07.2009. u 11:54zapis iz teksta poruke
#1
ovako, imam tabelu odbor i u njoj polja skraceninazivodbora (pk), punnazivodbora, jmbgpredsednikaodbora i jmbgzamenikapredsednika. clanovi su u posebnoj tabeli clanoviodbora i oni mi sada nisu vazni. u pretrazi ocu da kad korisnik ukuca jmbg, select protrci kroz odbore i ispise kao rezultat: skraceninazivodbora, punnazivodbora i svojstvo, s tim da ce svojstvo da primi vrednost "predsednik" ili "zamenik" zavisno da li je unesen jmbg jednak jmbgu predsednika ili zamenika. znaci, ja polje (kolonu) svojstvo nemam u tabeli, zelim da se ona kreira samo pri pretrazi. da li ovo da resim preko view-a i kako? kako da dodam tu promenljivu svojstvo? nesto sa declare mi lici ali nisam sigurna? hvala unapred
Potpis
... ovde ima nesto sto se nikako ne slaze... ;)
Re: kako da na osnovu pretrage upisem promenljivu... procitajte detaljnije 16.07.2009. u 12:13 · pre 210 meseci #2
Citat:
mayana: clanovi su u posebnoj tabeli clanoviodbora i oni mi sada nisu vazni.


I tek kako jesu vazni, post se moras povezati sa tom tableom da bi dobila vrednosti.

upit bi bio nesto kao (lupam kod mozda treba malo izmeniti ali je blizu)

SELECT odbor.*, clanoviodbora.svojstvo FROM odbor
LEFT OUTTER JOIN clanoviodbora ON odbor.jmbg = clanoviodbora.jmbg
WHERE odbor.jmbg = @unesenJmbg


EDIT: Posle tvoje izmene izgleda da nisam najbolje razumeo problem. Daj nekoliko redova iz obe tabele da vidimo kako to izgleda.
Potpis
Every hamster has his day.
Re: kako da na osnovu pretrage upisem promenljivu... procitajte detaljnije 16.07.2009. u 12:29 · pre 210 meseci #3
stavila sam ovo za upit (koristim c#.net)
Code:

string upit=@"SELECT skraceninazivodbora, punnazivodbora, jmbgpredsednikaodbora, jmbgzamenikaodbora from odbori WHERE JMBGPREDSEDNIKAODBORA=" + Convert.ToInt32(this.txtVrednost.Text)+" OR JMBGZAMENIKAPREDSEDNIKA=" + Convert.ToInt32(this.txtVrednost.Text);


i to mi sada daje kao rezultat podatke koje zelim ali mi ne pise recima "zamenik" ili "predsednik" nego mi da podatke, a ja zelim da mi ako nadje jmbg da je jednak sa jmbgpredsednika ispise "predsednik" i za zamenika isto...

clanovi nisu vazni jer se u tabeli odbor nalaze samo ova 4 polja, a u tabeli clanodbora se nalazi skraceninazivodbora i jmbg.
Potpis
... ovde ima nesto sto se nikako ne slaze... ;)
Re: kako da na osnovu pretrage upisem promenljivu... procitajte detaljnije 16.07.2009. u 15:23 · pre 210 meseci #6
Nije mi namera nikoga da zezam, samo mislim da ti je:
1. problem pogresno postavljen
2. ti ga nisi dobro razumela ili
3. baza ti je uzasno lose projektovana.

Logicno kako bi tabele trebalo da izgledaju je da imas jednu tabelu gde se nalaze jmbg, ime, prezime i svi ostali podaci o zaposlenima, drugu tabelu gde se nalaze jmbg i neki ID koji bi definisao funkciju u odboru i trecu tabelu koja bi sadrzala Id funkcije, opis i mozda jos neke podatke o tome. (proguglaj sa 'treca normalna forma' ili 'noramalizacija baza' uposte)

Tada bi tvoj upit bio elementaran join dve ili tri table gde bi ti jedina promenljiva bila ID koji je upisan na formi.

Drugi problem je da NIKAD ne smes spajati uneseni tekst od korisnika sa SQL upitom.
Na primer da nema (svakako suvisnog) Convert.ToInt32 u tvom slucaju neki zlonamerni korisnik bi mogao doci i uneti nesto kao "1; DELETE FROM odbori" i obrisati ti celu tabelu. (google: SQL Injection)

Za ovakve stvari se uvek koriste storovane procedure.
Potpis
Every hamster has his day.
Re: kako da na osnovu pretrage upisem promenljivu... procitajte detaljnije 16.07.2009. u 23:12 · pre 210 meseci #7
Sve sto ti je Fedya rekoa tacno je, bez ljutnje. problem je sto imas dve kolone sa istom vrstom podataka u jednoj tabeli. Tvoj uslov sad pokusava da nadje nesto sto se nalazi u jednoj, a mzoda i u drugoj koloni.

Ako nemas priliku da menjas strukturu baze, ovo ce verovatno pomoci:
Code:

SELECT 
skraceninazivodbora, punnazivodbora, jmbgpredsednikaodbora, jmbgzamenikaodbora ,
Opis = CASE 
            WHEN JMBGPREDSEDNIKAODBORA= @Vrednost THEN 'Predsednik'
            WHEN JMBGZAMENIKAPREDSEDNIKA= @Vrednost THEN 'Potpredsednik'
            ELSE 'POgresan JMBG'
        END
FROM odbori 
WHERE JMBGPREDSEDNIKAODBORA= @Vrednost 
OR JMBGZAMENIKAPREDSEDNIKA= @Vrednost


:-)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme