[ define @ 12.04.2005. 16:12 ] @
Ovako radim sajt za fakultet gde ce moci da se upisuju novi studenti sa korisnickim imenima i siframa i da ce se svakom uceniku moci upisivati ocene i n kada se loguje da moze da ih gleda.

Sve to nije problem sem jedne male sitnice, a to su ocene.
Razdvojio sam sve tabele

jedna sadrzi studente
Code:

CREATE TABLE studenti(
    id        int PRIMARY KEY auto_increment,
    ime        char(15) not null,
    prezime        char(20) not null,
     username     char(16),
     passwd         char(16) not null,
    adresa        char(40) not null,
    grad        char(20) not null,
    telefon        char(20) not null,
    email        char(40) ,
    godina        char(10) not null
);

a druga sadrzi predmete u cijim poljima ce se upisivati ocene
Code:

CREATE TABLE prva(
    id        int,
    tehnicke                 int,
    linearna                 int,
    fizika        int,
    logika        int,
    prog1        int,
    analiza        int,
    arhitektura    int,
    engleski    int,
    algoritmi    int
);

e sada mislio sam da unosim id od korisnika u svaku tabelu i da za svakog ucenika imaju posebne ocene. I to je ok, medjutim problem se javlja sto se ovako mogu upisivati vise ocena za jednog ucenika dok meni treba samo jedno unosenje.
Npr.

tabela studenti
id ime
1 Ivan
2 Uros

tabela prva (ovo su predmeti sa ocenama, navescu samo deo)
id algoritmi linearna analiza ...
1 10 10 9
1 9 9 9
2 9 7 6

znaci za ivana su unesene ocene dva puta

Sve sto mi je potrebno je da znam da li postoji neka mogucnost da se pri unosu ocena, odnosno potvrdjivanju prvo proverava da li je id od datog ucenika vec upisan u bazu, ako jeste onda da se radi update a ako nije da se upisuje..
[ stomic_50 @ 12.04.2005. 17:50 ] @
postoji mogucnost.

prvo sa
if (isset('polje koje provjeravas')) provjeri ima li sta u njemu

a zatim odradi dva sql upita

jedan za update tabele ako je polje vec uneseno - $sql = "update tabela..."

a ako nije onda uradis $sql=" insert into tabela"




mada mi nije jasno kako neko ne moze dobiti vise ocjena pa onda uradis average
[ define @ 12.04.2005. 18:19 ] @
ma zbog ocena je za jednu jer mi je ovo za fax i mozes imati samo jednu ocenu :D
a sto se tice onoga za studente
npr ja koristim
$ucenik=$HTTP_GET_VARS['ucenik'];
i tada se u $ucenik nalazi id od datog ucenika
i kada unesem za njega ocene onda mi je ako je on prvi ucenik

id algoritmi linearna analiza ...
1 10 10 9

razumes
e sada meni treba da uporedi nesto kao if postoji id u tabeli prva koji ima istu vrednost kao $ucenik onda radu update te kolone, a ako ne postoji onda radi insert.
Razumetel sad?
[ trivial @ 12.04.2005. 19:01 ] @
radish u tabeli prva sql query sa id-om, ako ti vrati rezultat radish update, otherwise insert

if(result>0)
q="insert..";
else
q="update";
[ trivial @ 12.04.2005. 19:11 ] @
greshkica...
if($result>0)
$q="update.."
else.....
dakle ako query vrati rezultat veci od nule (vishe od nula kolona) radish update, a ako ne insert...
mislim da se koristi
mysql_num_rows($result)
dakle

if (mysql_num_rows($result) > 0)

itd
[ define @ 12.04.2005. 19:51 ] @
ma tako nesto bi i moglo, a ima li solucija za koriscenje fetch_array
[ _owl_ @ 12.04.2005. 22:16 ] @
Prvo dizajn tabela bi mogao da bude bolji (pogotovo sto je ovo projekat za fax a ne za skolu), potrazi na netu sta znaci normalizacija i kako se sprovodi.
Drugo ne znam da li si obavesten ali sa SELECT SQL naredbom mozes da dodjes do podataka koji se nalaze u tabeli a zadovoljavaju odredjene kriterijume. Ako ces da radis sa varijantom SELECT pa INSERT/UPDATE moras da vodis racuna sta ce se desavati u slucaju da dva korisnika pokusavaju da unesu ocene za istog studenta (koji npr. jos nije unet u bazu), samo cu da napomenem da postoje i LOCK/UNLOCK naredbe.
[ define @ 13.04.2005. 08:11 ] @
hvala na savetima
odradio sam problem
potrudicu se da jos bolje odradim
[ set_X @ 13.04.2005. 09:50 ] @
I meni nikako da to uspe.
Pravim jedan forum, i znaci ako neko registruje username test, kako onda proveravam da li taj user vec postoji u bazi!?

Pokusavao sam sa nacinima koji su navedeni ovde u temi, ali nije uspelo.

poz.
[ caiser @ 13.04.2005. 10:09 ] @
Code:
$query=mysql_query("SELECT * FROM users WHERE username='$username'");
if(mysql_num_rows($query)!=0) {
  echo "Username vec postoji";
} else {
  registruj_korisnika();
}