inserare produse dupa cod
Moderatori: Moderatori, Start Moderator
Re: inserare produse dupa cod
Mobila la comanda
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Re: inserare produse dupa cod
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)
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)
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Re: inserare produse dupa cod
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.
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
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 ) ?
Mobila la comanda
Re: inserare produse dupa cod
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). 
-
nevvermind
- Senior Member
- Mesaje: 1264
- Membru din: Mar Iun 22, 2010 3:17 pm
Re: inserare produse dupa cod
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/
Re: inserare produse dupa cod
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." ?
SI cum fac: "tabel2.id_tabel1 tre sa fie foreign key catre omonima din tabel1." ?
-
nevvermind
- Senior Member
- Mesaje: 1264
- Membru din: Mar Iun 22, 2010 3:17 pm
Re: inserare produse dupa cod
"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?
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?
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Google [Bot] și 12 vizitatori