# Alle Artikel holen die einen Bestand haben

**URL:** https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021
**Category:** Shopware 3.5
**Tags:** programming
**Created:** [2. März 2011 um 14:21 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021 "2011-03-02T14:21:55Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Bandicood](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bandicood/32/56_2.png) [@Bandicood](https://forum.shopware.com/u/Bandicood)
#### Post date: [2. März 2011 um 14:21 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/1 "2011-03-02T14:21:55Z")

</div>

Hi, ich würde gerne in meinem Plugin alle Artikel aus der DB holen die einen Bestand haben. Ich benötige Daten wie: Name, Ordernumber, Preis, Bilder, usw… Momentan löse ich das so: ` $sql = "SELECT DISTINCT `articleID` FROM `s_articles_details` WHERE instock\>0"; $articles = Shopware()-\>Db()-\>fetchAll($sql); foreach ( $articles as $sArticle ) { $article = Shopware()-\>Modules()-\>Articles()-\>sGetArticleById($sArticle['articleID']); } ` Das dauert jedoch ewig (mehr als 5 Minuten!) und meistens bricht der Server das Script ab. Wie kann ich das schneller bzw. einfacher bewerkstelligen? Gibt es dafür vielleicht schon eine Funktion in der API? Gruß und Danke

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [2. März 2011 um 14:31 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/2 "2011-03-02T14:31:16Z")

</div>

[quote=„Skyflash“]Hi, ich würde gerne in meinem Plugin alle Artikel aus der DB holen die einen Bestand haben. Ich benötige Daten wie: Name, Ordernumber, Preis, Bilder, usw… Momentan löse ich das so: ` $sql = "SELECT DISTINCT `articleID` FROM `s_articles_details` WHERE instock\>0"; $articles = Shopware()-\>Db()-\>fetchAll($sql); foreach ( $articles as $sArticle ) { $article = Shopware()-\>Modules()-\>Articles()-\>sGetArticleById($sArticle['articleID']); } ` Das dauert jedoch ewig (mehr als 5 Minuten!) und meistens bricht der Server das Script ab. Wie kann ich das schneller bzw. einfacher bewerkstelligen? Gibt es dafür vielleicht schon eine Funktion in der API? Gruß und Danke[/quote] Hey, ist die Foreach Schleife zwingend notwenig? Wenn du die weg lässt, sollest du doch die Werte auch in $articles[0][articleID], $articles[1][articleID], $articles[2][articleID] etc. Oder hab ich was falsch verstanden?

---

<div class="post-metadata">

### Author: ![Bandicood](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bandicood/32/56_2.png) [@Bandicood](https://forum.shopware.com/u/Bandicood)
#### Post date: [2. März 2011 um 14:34 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/3 "2011-03-02T14:34:39Z")

</div>

Hey, danke für deine Antwort! Du hast vollkommen Recht doch was nützt mir das? EDIT: Vielleicht noch wichtig zu wissen: `SELECT DISTINCT `articleID` FROM `s_articles_details` WHERE instock\>0` Die Abfrage iefert mir 2088 “verschiedene” IDs. Soll heissen es wird 2088 mal sGetArticleById() aufgerufen. Güße

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [2. März 2011 um 14:38 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/4 "2011-03-02T14:38:09Z")

</div>

Wie meinst du das, was nützt dir das? Stehe auf dem Schlauch 😉 Du hast doch dann eine Schleife weniger und solltest etwas Zeitersparnis haben. (Sicher bin ich voll auf dem Holzweg)

---

<div class="post-metadata">

### Author: ![Bandicood](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bandicood/32/56_2.png) [@Bandicood](https://forum.shopware.com/u/Bandicood)
#### Post date: [2. März 2011 um 14:43 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/5 "2011-03-02T14:43:46Z")

</div>

Also wenn ich die Schleife auflöse müsste ich ja sGetArticleById() “manuell” aufrufen damit ich die Artikeldaten erhalte. Und das 2088 mal! Da nehm ich lieber die Schleife ;-). Also die Logik sieht momentan so aus: 1. Die SQL Abfrage holt “nur” die articleID von den Artikeln ab die einen Bestand haben. 2. Die Schleife läuft jetzt jede articleID durch und holt Bilder, Namen, Preise, usw. zu der jeweiligen articleID ab. Dieser Vorgang dauert einfach viel zu lange.

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [2. März 2011 um 14:46 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/6 "2011-03-02T14:46:21Z")

</div>

[quote=“Skyflash”]Also wenn ich die Schleife auflöse müsste ich ja sGetArticleById() “manuell” aufrufen damit ich die Artikeldaten erhalte. Und das 2088 mal! Da nehm ich lieber die Schleife ;-). Also die Logik sieht momentan so aus: 1. Die SQL Abfrage holt “nur” die articleID von den Artikeln ab die einen Bestand haben. 2. Die Schleife läuft jetzt jede articleID durch und holt Bilder, Namen, Preise, usw. zu der jeweiligen articleID ab. Dieser Vorgang dauert einfach viel zu lange.[/quote] Sorry, irgendwie hatte ich einen Denkfehler… Dachte du holst dir über getArticle nur die ID^^ Ich bin schon still und gehe meiner eigenen Arbeit nach 🕶

---

<div class="post-metadata">

### Author: ![Bandicood](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bandicood/32/56_2.png) [@Bandicood](https://forum.shopware.com/u/Bandicood)
#### Post date: [2. März 2011 um 14:47 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/7 "2011-03-02T14:47:38Z")

</div>

hihi…kein Problem. Trotzdem vielen Dank 😉

---

<div class="post-metadata">

### Author: ![Bandicood](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/bandicood/32/56_2.png) [@Bandicood](https://forum.shopware.com/u/Bandicood)
#### Post date: [2. März 2011 um 15:40 UTC](https://forum.shopware.com/t/alle-artikel-holen-die-einen-bestand-haben/2021/8 "2011-03-02T15:40:08Z")

</div>

Ich habe jetzt sGetArticleById() durch meine eigenen Abfragen ersetzt und die Exportzeit beträgt nur noch 5 Sekunden. Warhscheinlich hatte die Shopwarefunktion einfach zu viele Daten abgeholt.
