inserare produse dupa cod

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator


takedown
Average Member
Mesaje: 153
Membru din: Joi Feb 07, 2013 8:50 pm
Contact:

Re: inserare produse dupa cod

Mesajde takedown » Mar Apr 21, 2015 12:34 am

Mobila la comanda

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Re: inserare produse dupa cod

Mesajde Birkoff » Mar Apr 21, 2015 1:54 am

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)
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.

beng
Junior Member
Mesaje: 34
Membru din: Mar Noi 12, 2013 7:15 pm
Localitate: Bucuresti
Contact:

Re: inserare produse dupa cod

Mesajde beng » Mie Apr 22, 2015 10:25 am

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.

ovy79ro
PHPRomania Supporter
Mesaje: 28
Membru din: Mie Mar 19, 2014 10:41 am

Re: inserare produse dupa cod

Mesajde ovy79ro » Joi Apr 23, 2015 10:07 pm


takedown
Average Member
Mesaje: 153
Membru din: Joi Feb 07, 2013 8:50 pm
Contact:

Re: inserare produse dupa cod

Mesajde takedown » Joi Apr 23, 2015 10:44 pm

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

ovy79ro
PHPRomania Supporter
Mesaje: 28
Membru din: Mie Mar 19, 2014 10:41 am

Re: inserare produse dupa cod

Mesajde ovy79ro » Joi Apr 23, 2015 11:22 pm

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

Mesajde nevvermind » Vin Apr 24, 2015 3:13 am

Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

ovy79ro
PHPRomania Supporter
Mesaje: 28
Membru din: Mie Mar 19, 2014 10:41 am

Re: inserare produse dupa cod

Mesajde ovy79ro » Vin Apr 24, 2015 9:46 am

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." ?

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: inserare produse dupa cod

Mesajde nevvermind » Vin Apr 24, 2015 1:14 pm

"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?
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 5 vizitatori