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

Kako da onemogucim upis istih podataka u tabelu

[es] :: MySQL :: Kako da onemogucim upis istih podataka u tabelu

[ Pregleda: 2586 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Kako da onemogucim upis istih podataka u tabelu07.08.2006. u 13:40 - pre 214 meseci
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?
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Kako da onemogucim upis istih podataka u tabelu07.08.2006. u 14:57 - pre 214 meseci
Hint: CONSTRAINTS
Npr. PRIMARY KEY, UNIQUE ...
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-2400.sa.bih.net.ba.



Profil

icon Re: Kako da onemogucim upis istih podataka u tabelu07.08.2006. u 15:02 - pre 214 meseci
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.
 
Odgovor na temu

CtrlAltDel
Beograd

Član broj: 96286
Poruke: 325
*.ADSL.neobee.net.



Profil

icon Re: Kako da onemogucim upis istih podataka u tabelu07.08.2006. u 15:06 - pre 214 meseci
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']
 
Odgovor na temu

Šahbaz
Developer, BBM
EU

Član broj: 102142
Poruke: 106
*.crnagora.net.



Profil

icon Re: Kako da onemogucim upis istih podataka u tabelu11.08.2006. u 16:08 - pre 214 meseci
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 :)
 
Odgovor na temu

[es] :: MySQL :: Kako da onemogucim upis istih podataka u tabelu

[ Pregleda: 2586 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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