# Bild URL aus Datenbank

**URL:** <https://forum.shopware.com/t/bild-url-aus-datenbank/60202>\
**Category:** Programmierung\
**Created:** [28. Juni 2019 um 09:25 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202 "2019-06-28T09:25:02Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [28. Juni 2019 um 09:25 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/1 "2019-06-28T09:25:02Z")

</div>

Hallo,

weiß zufällig jemand, wie ich an die Bild URL aus der Datenbank komme? Leider finde ich derzeit nichts, wie ich vor dem Dateinamen in der s\_articles\_img noch an die entsprechenden Ordner davor komme (media/image/x/xx).

Vielen Dank!

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [28. Juni 2019 um 09:32 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/2 "2019-06-28T09:32:30Z")

</div>

Da die URLs ja nicht in der Datenbank stehen, sondern nur das URL-Schema, findest du die Information dort nicht. Es kommt auf den verwendeten Adapter an (bspw. plain, md5, s3, …). Im Standard verwenden wir md5 - dann kannst du die URL per MD5-Hash ermitteln.&nbsp;

Feld “path” aus s\_media:&nbsp;media/image/brot.jpg  
MD5 Hash davon:&nbsp;e943a399b17579a7cc8ab810383ebce1 (die ersten 6 Zeichen ergeben den Pfad)  
Realer Pfad auf dem Dateisystem:&nbsp;media/image/e9/43/a3/brot.jpg

Bei Thumbnails musst du noch “thumbnail” und den Namen anpassen. Also bspw:

Pfad:&nbsp;media/image/thumbnail/brot\_200x200.jpg  
MD5:&nbsp;b24bc84cd91a6c01245238a0bd170777  
Realder Pfad:&nbsp;media/image/b2/4b/c8/brot\_200x200.jpg

---

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [28. Juni 2019 um 10:19 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/3 "2019-06-28T10:19:31Z")

</div>

Danke für deine Antwort. Wo bekomme ich den MD5 Hash her?

---

<div class="post-metadata">

**Author:** ![\_Sebastian](https://avatars.discourse-cdn.com/v4/letter/_/f6c823/32.png) [@\_Sebastian](https://forum.shopware.com/u/_Sebastian)\
**Post date:** [28. Juni 2019 um 10:31 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/4 "2019-06-28T10:31:26Z")

</div>

[https://www.md5-generator.de/](https://www.md5-generator.de/)

---

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [28. Juni 2019 um 12:17 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/5 "2019-06-28T12:17:49Z")

</div>

Versteh ich überhaupt nicht, was soll ich in den Generator eintragen? Die Bildurl? Ich habe tausende davon…

Feld “path” aus s\_media:&nbsp;media/image/brot.jpg -----\> alles klar, bekommt man aus der Datenbank  
MD5 Hash davon:&nbsp;e943a399b17579a7cc8ab810383ebce1 (die ersten 6 Zeichen ergeben den Pfad) ----\> woher bekomme ich den für ALLE Produkte???  
&nbsp;

&nbsp;

![Undecided](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/1X/8ae622c50104e84c5003fedfcc22572813a67b41.png "Undecided")

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [28. Juni 2019 um 12:21 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/6 "2019-06-28T12:21:37Z")

</div>

Den MD5 Hash musst du generieren lassen. Bspw. per PHP, Javascript oder was auch immer.

Wo verarbeitest du denn die Daten? Also du holst sie ja irgendwo aus der DB.

---

<div class="post-metadata">

**Author:** ![eierund](https://avatars.discourse-cdn.com/v4/letter/e/e8c25b/32.png) [@eierund](https://forum.shopware.com/u/eierund)\
**Post date:** [28. Juni 2019 um 13:25 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/7 "2019-06-28T13:25:36Z")

</div>

Korrekt, ich hole mir den path per php aus der Datenbank.

Wie ich da jetzt den passenden MD5 erstellen soll erschließt sich mir überhaupt nicht.

---

<div class="post-metadata">

**Author:** ![sacrofano](https://avatars.discourse-cdn.com/v4/letter/s/65b543/32.png) [@sacrofano](https://forum.shopware.com/u/sacrofano)\
**Post date:** [28. Juni 2019 um 14:39 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/8 "2019-06-28T14:39:08Z")

</div>

In php gibt es eine Funktion md5, mit der du dir für jedes Bild den md5-Wert errechnen lassen kannst.

[https://www.php.net/manual/de/function.md5.php](https://www.php.net/manual/de/function.md5.php)

```
md5(media/image/brot.jpg)

```

–\> **e943a3** 99b17579a7cc8ab810383ebce1&nbsp;&nbsp; --\> Dann kannst du aus den ersten sechs Zeichen einen Pfad derart zusammenbauen “media/image/ **e9/43/a3** /brot.jpg”

Hinweis: Wenn “ad/” in deinem Ergebnispfad vorkommt, musst du “ad/” durch “g0/” ersetzen. Warum das so ist, weiss ich nicht.

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [2. November 2020 um 11:41 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/9 "2020-11-02T11:41:06Z")

</div>

Ggf wird das vom ein oder andern noch gebraucht, hier ist die SQL dazu für 600x600 px gerenderte Bilder, also nicht das Original.

```
CONCAT('https://beispiel.de/media/image/',
           SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),1,2),
           '/',
           SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),3,2),
           '/',
           SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),5,2),
           '/',
           sai.img,'_600x600.jpg') AS Bilderlink

```

sai.img kommt aus

```
INNER JOIN s_articles_img AS sai ON sai.articleID = sa.id AND sai.main = 1

```

600x600 wenn es so in der Medienverwaltung hinterlegt ist. Andernfall anderen Wert nehmen.

So kann man es direkt in SQL machen und braucht kein PHP. Vorteil ist, dass es 100x schneller als die PHP-Lösung ist.

&nbsp;

---

<div class="post-metadata">

**Author:** ![davit\_sargsyan](https://avatars.discourse-cdn.com/v4/letter/d/7ba0ec/32.png) [@davit\_sargsyan](https://forum.shopware.com/u/davit_sargsyan)\
**Post date:** [3. November 2020 um 07:28 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/10 "2020-11-03T07:28:01Z")

</div>

If this is related to the article images, you can get the article by it’s id

article = Shopware () -&gt; Modules () -&gt; Articles () -&gt; sGetArticleById ( articleID);  
  
  
  
then you can take the image sources by

&nbsp;

foreach($article[“images”] as $image){

&nbsp; &nbsp; &nbsp; &nbsp;$url = $image[“source”];

}

---

<div class="post-metadata">

**Author:** ![frimipiso](https://avatars.discourse-cdn.com/v4/letter/f/a587f6/32.png) [@frimipiso](https://forum.shopware.com/u/frimipiso)\
**Post date:** [12. Dezember 2020 um 00:02 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/11 "2020-12-12T00:02:56Z")

</div>

Grossartig! Vielen Dank.

Das habe ich direkt in mein DHL Barcode Scanner Skript eingebaut, um mir auf dem Handy die Bestellungen nach dem Barcode Scannen über die Kamera anzeigen zu lassen.

> [@brettvormkopp schrieb:](https://forum.shopware.com/profile/6611/brettvormkopp "brettvormkopp")
> 
> Ggf wird das vom ein oder andern noch gebraucht, hier ist die SQL dazu für 600x600 px gerenderte Bilder, also nicht das Original.
> 
> CONCAT(‚[https://beispiel.de/media/image/](https://beispiel.de/media/image/)‘,  
> SUBSTRING(MD5(CONCAT(‚media/image/thumbnail/‘,sai.img,‚\_600x600.jpg‘)),1,2),  
> ‚/‘,  
> SUBSTRING(MD5(CONCAT(‚media/image/thumbnail/‘,sai.img,‚\_600x600.jpg‘)),3,2),  
> ‚/‘,  
> SUBSTRING(MD5(CONCAT(‚media/image/thumbnail/‘,sai.img,‚\_600x600.jpg‘)),5,2),  
> ‚/‘,  
> sai.img,‚\_600x600.jpg‘) AS Bilderlink
> 
> sai.img kommt aus
> 
> INNER JOIN s\_articles\_img AS sai ON sai.articleID = sa.id AND sai.main = 1
> 
> 600x600 wenn es so in der Medienverwaltung hinterlegt ist. Andernfall anderen Wert nehmen.
> 
> So kann man es direkt in SQL machen und braucht kein PHP. Vorteil ist, dass es 100x schneller als die PHP-Lösung ist.
> 
> &nbsp;

---

<div class="post-metadata">

**Author:** ![Klimax](https://avatars.discourse-cdn.com/v4/letter/k/848f3c/32.png) [@Klimax](https://forum.shopware.com/u/Klimax)\
**Post date:** [10. Juni 2021 um 10:11 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/12 "2021-06-10T10:11:29Z")

</div>

Hi,  
das hat mir schon enorm geholfen, vielen Dank!

Wie kann ich jetzt noch die Verbindung zu Varianten also articles\_detail\_id herstellen?  
Ich habs schon mit

```auto
left join s_articles_img sai on sai.article_detail_id = sap.articledetailsID

```

versucht, jedoch ohne Erfolg. Ich verstehe nicht ganz wie das in Shopware gelöst wird.

---

<div class="post-metadata">

**Author:** ![brettvormkopp](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/brettvormkopp/32/7788_2.png) [@brettvormkopp](https://forum.shopware.com/u/brettvormkopp)\
**Post date:** [28. September 2021 um 10:54 UTC](https://forum.shopware.com/t/bild-url-aus-datenbank/60202/13 "2021-09-28T10:54:48Z")

</div>

@FragenAnsForum @Klimax  
Bei meiner SQL ist noch ein „Fehler“. Wenn in der MD5 String die URL „/ad/“ wird, dann schreibt die Shopware um in „/g0/“, hier muss also noch ein Zusatz eingefügt werden.

```auto
CONCAT('https://example.com/media/image/',
            IF(SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),1,2) = 'ad','g0',SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),1,2)),
            '/',
            IF(SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),3,2) = 'ad','g0',SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),3,2)),
            '/',
            IF(SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),5,2) = 'ad','g0',SUBSTRING(MD5(CONCAT('media/image/thumbnail/',sai.img,'_600x600.jpg')),5,2)),
            '/',
            sai.img,'_600x600.jpg') AS Bilderlink

```
