Pagina 1 din 1

inserare produse dupa cod

Scris: Lun Apr 20, 2015 10:01 pm
de ovy79ro

Re: inserare produse dupa cod

Scris: Mar Apr 21, 2015 12:34 am
de takedown

Re: inserare produse dupa cod

Scris: Mar Apr 21, 2015 1:54 am
de Birkoff
insert on duplicate chei iti merge doar daca campul "cod" e setat unic in baza de date (astfel la incercarea de a introduce acelasi cod va da eroare de duplicat si atunci va face update la insertul tau)

daca insa nu ai setat acea coloana ca fiind unica, alternativa e sa faci mai multi pasi:
1) citesti codurile din xml si apoi faci un select din bd de genu
select cod, id from tabel where cod IN (codurile din xml)
=> iti va returna o lista cu codurile gasite in bd si id-urile aferente => pe baza ei, iei din xml si le faci update in bd (ce nu ti-a returnat nu e in bd si nici nu te intereseaza din xml)

Re: inserare produse dupa cod

Scris: Mie Apr 22, 2015 10:25 am
de beng
Bine a zis takedown, fa un singur select pe codurile din baza de date astfel incat sa nu generezi cate un query de select pt fiecare produs din xml si baga-le intr-un array.
In loc de foreach-ul sugerat de takedown ar fi mai profi ca sa folosesti functia in_array ca sa verifici daca exista acel cod sau nu in tabela.

Re: inserare produse dupa cod

Scris: Joi Apr 23, 2015 10:07 pm
de ovy79ro

Re: inserare produse dupa cod

Scris: Joi Apr 23, 2015 10:44 pm
de takedown
Deci cu alte cuvinte, ai primul tabel care are o colana id_tabel1 ( sa zicem ) si mai ai un tabel care are de asemenea coloana id_tabel1 si vrei sa introduci date in tabelul cu numarul doi, dar numai daca (tabel 1) id_tabel1 = id_tabel1 ( tabel 2 ) ?

Re: inserare produse dupa cod

Scris: Joi Apr 23, 2015 11:22 pm
de ovy79ro
Nu. Am doua tabele care contin date despre niste produse (e vb de un magazin online). Primul tabel are o coloana id_tabel1 iar al doilea tabel are de asemenea prima coloana id_tabel1. Primul tabel mai contine coloane gen pret, stoc, cod, etc iar al doilea contine coloane gen descriere, cuvinte meta, etc. Eu inserez in aceste tabele produsele dintr-un fisier xml extern. Prin foreach-ul din codul din postul anterior, eu introduc in primul tabel coloanele id_tabel1, pret, stoc, cod, iar in al doilea tabel coloanele id_tabel1, descriere, cuvinte meta, insa trebuie sa aiba neaparat acelasi id_tabel1, deoarece fac referire la acelasi produs inserat. Altfel pe site o sa-mi apara de exemplu la produsul cu codul xyz (cod care e in primul tabel), descrierea de la produsul abc (descriere care e in al doilea tabel). :)

Re: inserare produse dupa cod

Scris: Vin Apr 24, 2015 3:13 am
de nevvermind

Re: inserare produse dupa cod

Scris: Vin Apr 24, 2015 9:46 am
de ovy79ro
Daca nu setez id-ul din tabelul 2 pe auto_increment, nu merge... imi introduce in tabelul 2 doar un sg rand cu id-ul 0. Nu da nicio eroare. Daca setez pe auto_increment merge.
SI cum fac: "tabel2.id_tabel1 tre sa fie foreign key catre omonima din tabel1." ?

Re: inserare produse dupa cod

Scris: Vin Apr 24, 2015 1:14 pm
de nevvermind
"SI cum fac: "tabel2.id_tabel1 tre sa fie foreign key catre omonima din tabel1." ?" - google wtf?
Ai cautat si tu pe net? https://dev.mysql.com/doc/refman/5.0/en ... -insert-id

Uite - http://pastie.org/10111316

a) NU mai folosi mysql_*. O sa rada lumea de tine. Foloseste mysqli sau PDO.
b) foloseste tranzactii sa faci doua insertii din prima, unitar.
c) ai sa ai probleme sa faci un magazin online cu astfel de cunostinte. sigur nu vrei o platforma gata facuta?