Datenbank - Varianten - Ean Codes - Update

Hi :slight_smile:

Ich hätte mal ne allgemeine Frage zu MySQL. 

Ich wollte per Datenbank alle EAN Codes Updaten. 
Hauptartikel EAN = Varianten EAN. 

Sprich: 
EAN-Code von ID (218) = 747916351092
EAN-Code von ID (218) = (leider noch leer)

Per Datenbank konnte ich die ID und EAN-Code ausgeben. 
Nun möchte ich aber das er alle ID´s mit fest gesetzten EAN speichert.

Ich hoffe ich konnte mein Problem erklären. 
Datenbank abfragen momentan: 

 

while ($zeile = $erg->fetch_object()) {

    
    echo ’
EAN-Code von ID (’.$zeile->articleID.’) = ‘.$zeile->ean.’’;
    
    
}

:slight_smile:
 

Stehen die EANs denn schon beim Hauptartikel drin?

UPDATE s_articles_details sad 
LEFT JOIN (SELECT articleID, EAN from s_articles_details WHERE kind=1) z ON sad.articleID = z.articleID
set sad.EAN = z.EAN
WHERE sad.kind=2

 

Dadurch macht er kein Update auf eine auszulesene Tabelle, sondern eine Tmp-Table und dein Problem sollte gelöst sein, oder?

Evtl. mal in eine Testdatenbank kopieren und testen~

1 „Gefällt mir“

@PStadtfeld schrieb:

Stehen die EANs denn schon beim Hauptartikel drin?

UPDATE s_articles_details sad
LEFT JOIN (SELECT articleID, EAN from s_articles_details WHERE kind=1) z ON sad.articleID = z.articleID
set sad.EAN = z.EAN
WHERE sad.kind=2

 

Dadurch macht er kein Update auf eine auszulesene Tabelle, sondern eine Tmp-Table und dein Problem sollte gelöst sein, oder?

Evtl. mal in eine Testdatenbank kopieren und testen~

Ja alle Hauptartikel haben ein EAN nummer. 
Wir haben leider kein Testdatenbank :/ 

Kann jemand den Code von Pstadtfeld bestätigen oder sollen wir es einfach mal ausprobieren ? Kann man das dann zurückstellen ?

Oder sollen wir ein backup machen ? :D 

Wo läuft denn der Shop? Könnt ihr da nicht einfach eine neue DB einrichten als shopname_testsystem und dann ein Backup vom Livesystem darin einspielen?

Zur not lokal einfach eine Datenbank aufsetzen (bsp. xampp) und dann darin eine Kopie der Datenbank reinpacken, ihr braucht ja keinen kompletten TestShop.

Rückgängig lässt sich ein Update-Befehl in der Regel natürlich nicht, vorab Sichern könnt Ihr natürlich aber auf dem Livesystem führt man keine Statements aus, bei denen man sich unsicher ist :stuck_out_tongue:

 

@eesty schrieb:

Wir haben leider kein Testdatenbank :/ 

Uberspace klicken, Dump einspielen, Testdatenbank fertig.

@eesty schrieb:

Kann jemand den Code von Pstadtfeld bestätigen oder sollen wir es einfach mal ausprobieren ? Kann man das dann zurückstellen ?

Sollte passen. Zurückstellen kannst du das prinzpiell auch indem du einfach NULL auf alle Zeilen mit kind=2 bügelst.

@eesty schrieb:

Oder sollen wir ein backup machen ? :D 

Das solltest du sowieso immer tun.

Matt 

@msslovi0 schrieb:

@eesty schrieb:

Wir haben leider kein Testdatenbank :/ 

Uberspace klicken, Dump einspielen, Testdatenbank fertig.

@eesty schrieb:

Kann jemand den Code von Pstadtfeld bestätigen oder sollen wir es einfach mal ausprobieren ? Kann man das dann zurückstellen ?

Sollte passen. Zurückstellen kannst du das prinzpiell auch indem du einfach NULL auf alle Zeilen mit kind=2 bügelst.

@eesty schrieb:

Oder sollen wir ein backup machen ? :D 

Das solltest du sowieso immer tun.

Matt 

Datenbank wurde gesichert. Nun testen wir einfach den Code :smiley: zur Not spielen wir das alte wieder ein. 
  

@PStadtfeld schrieb:

Stehen die EANs denn schon beim Hauptartikel drin?

UPDATE s_articles_details sad
LEFT JOIN (SELECT articleID, EAN from s_articles_details WHERE kind=1) z ON sad.articleID = z.articleID
set sad.EAN = z.EAN
WHERE sad.kind=2

 

Dadurch macht er kein Update auf eine auszulesene Tabelle, sondern eine Tmp-Table und dein Problem sollte gelöst sein, oder?

Evtl. mal in eine Testdatenbank kopieren und testen~

Hat Funktioniert ! SUPER ! GENIAL :smiley: Danke dir i love the community from ShopWare :D