Zanima me kako u MySQL-u (v4.1.0) dodati novi slog, ali samo u slucaju da taj slog ne postoji, na sto jednostavniji nacin (ako je moguce)
sastojci_u_receptima
--------------------
id (INT AUTOINC UNIQUE INDEX...)
sastojak_id (jaja 1, so 2, luk 3.....)
kolicina
Napravio sam stranicu koja ubacuje novi slog u tu tabelu (PHP) i tu nemam problema.
Problem nastaje na stranici koja mi sluzi za dodavanje i izmenu slogova. Napravio sam da kada se "edituje" neki recept, vec postojeci sastojci se prikazu na ekranu (jedan combobox za sastojak i jedno edit polje za kolicinu), ali korisnik ima mogucnost da doda klikom na dugme (uz pomoc javascripta) jos tih sastojaka tako da na kraju imam za obradu stare sastojke, plus nekoliko novih.
Sve se to fino spakuje u 2 niza sastojci[] i kolicine[] i samo mi preostaje da uz pomoc INSERT i UPDATE osvezim tabelu: da one vec postojece promenim uz pomoc UPDATE, a da nove dodam uz pomoc INSERT. Eventualno ako je negde uneta 0 za kolicinu, da uz pomoc DELETE obrisem taj sastojak.
Meni je dakle problem kako da ne ubacim 2x isti sastojak (sastojak_id).
Pokusao bih to da resim direktno uz pomoc MySQL-a, bez mesanje php-a i javasrcipta. Nesto sam mislio da uradim najpre jedan SELECT pa da redom ispitujem, ali mozda postoji i bolje resenje. Isto tako mogu izbaciti iz combobox-a vec postojece sastojke na ekranu, ali mozda ce mi to kompilikovati stvari kasnije.
Mozes da prvo obrises sastojke iz baze za taj recept pa da onda ubacis sve sastojke sa forme.
Pogledaj sintaksuINSERT komande, mozda tamo nadjes nesto korisno.
S obzirom da imas AUTO INCREMENTAL ID kolonu, jednostavno zapamti ID postojeceg sastojka;
Znaci, ako unos ima ID znaci da je postojeci, treba ga update-ovati a ako ga nema upisi nove
Ukoliko ti se primarni ključ u tabeli SASTOJCI_U_RECEPTIMA sastoji od
ID_RECEPT i ID_SASTOJAK neće biti moguće dodati postojeći sastojak u recept, baza će javiti povredu primarnog ključa.