[ Šahbaz @ 07.08.2006. 13:40 ] @
Dakle napravio sam jednu jednostavnu tabelu.
I php skriptu koja upisuje podatke u istu.
Osonovni problem je sto ne znam kako da onemogucim upis istih podataka.

Evo kako izgleda kod:

Code:


<?php


$ime_baze = "proba";
$ime_tabele ="probna";

$connection = mysql_connect("localhost", "ime", "sifra") or die (mysql_error()); //uspostavi konekciju

$db = mysql_select_db($ime_baze, $connection) or die (mysql_error()); //selektuj ovu bazu

//kreirej sql sintaksu za upis u tabelu

$sql = "INSERT INTO $ime_tabele (zanr, tip, snimak, prevod, broj, godina, trajnje, diskova, naziv_filma, prevod_naziva, uloge, rezija, omot, komentar)
 VALUES ('$_POST[zanr]','$_POST[tip]','$_POST[snimak]','$_POST[prevod]','$_POST[broj]',$_POST[godina],'$_POST[trajanje]','$_POST[diskova]','$_POST[naziv_filma]','$_POST[prevod_naziva]','$_POST[uloge]','$_POST[rezija]','$_POST[omot]','$_POST[komentar]')";

//smjestanje rezultata

$result = mysql_query ($sql, $connection) or die (mysql_error());


//samo jos stampa


?>



E naravno imam i html formu i to sve radi normalno.
Ali bez problema mogu da dodam identicne podatke vise puta.
Kako da to onemogucim?
[ Dejan Topalovic @ 07.08.2006. 14:57 ] @
Hint: CONSTRAINTS
Npr. PRIMARY KEY, UNIQUE ...
[ mb_sa @ 07.08.2006. 15:02 ] @
Code:
$broj = $_POST['broj']; // ja sam uzeo da $broj jedinstvni broj, odnosno oznaka filma, koja se ne ponavlja

$provjera_upit = mysql_query("SELECT broj FROM $ime_tabele WHERE broj='$broj'");
$broj_filmova = mysql_num_rows($provjera_upit);

if ($broj_filmova>0) {
echo "Film je vec u bazi";
}
else {
// ako ne postoji u bazi, onda ide INSERT INTO ...

}


Takodjer, pogledaj pojmove na koje te je uputio Dejan Topalovic.
[ CtrlAltDel @ 07.08.2006. 15:06 ] @
hm da i ja mislim da je pozeljno da postoji neki ID filma, ali to opet ne garantuje da ne moze da unese isti film
pogotovu ako se ID automatski dodeljuje primary,unique, auto increment

a opet ako se oznaka filma rucno unosi... nista nije postignuto - moze da pomesa oznake i opet mora negde da stornira spisak ... a ovo je valjda taj spisak koji bi da ima

btw ostatak poruke sam cukarao dok su drugi postovali .... tako da mozda ima nepotrebnih redova ;)

pa evo ovako... prvo da razmislimo koliko najmanje provera treba da bi se ustanovilo da nije isti unos...

ako idemo po nazivu - ne valja posto sigurno postoji film sa istim imenom (rimejk itd.)
e onda dodajemo i godinu .... to pretpostavljam da ne postoji isti naziv ista godina...
( u stvari ima director cut i sl...) dobro to ne znam u koje ti polje ide i da li ide

znaci zadrzacemo se na nazivu i godini

znaci samo treba pre upisa proveriti da li u jednom redu tabele postoji takav naziv sa takvom godinom

tj. napises kveri kojim selektujes sve redove iz baze gde su naziv i godina jednaki postovanim vrednostima naziva i godine.

i onda proveravas ukoliko nema rezultata -> upis, ukoliko ima -> vec je uneto u bazu

"SELECT * FROM probna WHERE naziv_filma=".$_POST['naziv']." AND godina=".$_POST['godina']
[ Šahbaz @ 11.08.2006. 16:08 ] @
Slicno sam probao i ranije da odradim. Ali mi nije uspjelo kao ni sa kodom koji ste mi vi poslali. I dalje bez problema mogu da upisem isti broj, naziv...

Ps.
Citat:
Dejan Topalovic: Hint: CONSTRAINTS
Npr. PRIMARY KEY, UNIQUE ...


Ovo bas nisam najbolje shvatio pa nisam ni probao :)