tag:forum.selfhtml.org,2005:/self Wie könnte ich folgendes umsetzen? – SELFHTML-Forum 2019-06-17T12:09:30Z https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750494#m1750494 Bernd 2019-06-16T08:58:57Z 2019-06-16T08:58:57Z Wie könnte ich folgendes umsetzen? <p>Hallo,</p> <p>ich stehe irgendwie total auf dem Schlauch und weiß nicht wie ich folgendes umsetzen könnte.</p> <p>Folgende Tabelle habe ich</p> <pre><code class="block language-sql"><span class="token keyword">CREATE</span> <span class="token keyword">TABLE</span> <span class="token keyword">IF</span> <span class="token operator">NOT</span> <span class="token keyword">EXISTS</span> <span class="token identifier"><span class="token punctuation">`</span>artikel_ausgeliehen<span class="token punctuation">`</span></span> <span class="token punctuation">(</span> <span class="token identifier"><span class="token punctuation">`</span>aa_id<span class="token punctuation">`</span></span> <span class="token keyword">int</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span> <span class="token keyword">AUTO_INCREMENT</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_artikelID<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_projektID<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_userID<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">200</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_menge<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token keyword">date</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_status<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_grund<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token identifier"><span class="token punctuation">`</span>aa_code<span class="token punctuation">`</span></span> <span class="token keyword">varchar</span><span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">)</span> <span class="token operator">NOT</span> <span class="token boolean">NULL</span><span class="token punctuation">,</span> <span class="token keyword">PRIMARY</span> <span class="token keyword">KEY</span> <span class="token punctuation">(</span><span class="token identifier"><span class="token punctuation">`</span>aa_id<span class="token punctuation">`</span></span><span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token keyword">ENGINE</span><span class="token operator">=</span>MyISAM <span class="token keyword">DEFAULT</span> <span class="token keyword">CHARSET</span><span class="token operator">=</span>latin1 <span class="token keyword">AUTO_INCREMENT</span><span class="token operator">=</span><span class="token number">445444</span> <span class="token punctuation">;</span> </code></pre> <p>Hier stehe pro Tag die Artikel drin, die ausgeliehen sind, das wichtigste ist die menge und projektID sowie das Datum.</p> <p>Jetzt habe ich ein Projektzeitraum, dieser steht in $von und $bis im englischen Format, also 2019-06-16, Außerdem gibt es noch eine Variable mit $Ausgabe_Tagesbestand. Jetzt muss ich natürlich die Menge berücksichtigen die in der artikel_ausgeliehen stehen. Und genau da habe ich mein Problem. Wie kann ich die artikel_ausgeliehen mit dem Zeitraum abgleichen?</p> <p>Mein Kopf ist irgendwie total leer </p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750496#m1750496 pl 2019-06-16T09:05:59Z 2019-06-16T09:05:59Z Wie könnte ich folgendes umsetzen? <blockquote> <p>Wie kann ich die artikel_ausgeliehen mit dem Zeitraum abgleichen?</p> </blockquote> <p>Den Zeitraum vorgeben. Dann kannst Du auch die Abfrage formulieren. MFG</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750499#m1750499 TS ts-self@online.de https://bitworks.de 2019-06-16T09:14:17Z 2019-06-16T09:16:04Z Wie könnte ich folgendes umsetzen? <p>Hello,</p> <p>das gezeigts Format ist nicht "englisch", sondern quasi ANSI. ANSI wäre "20190616" => "YYYYMMDD" (alles Ziffern, führende Nullen). . Es gibt "<a href="https://www.techonthenet.com/mysql/between.php" rel="nofollow noopener noreferrer">between</a>".<br> Beide Spalten soltten den gleichen Datums/Zeittyp haben.<br> Beachte ggf. die Zugehörigkeit der Grenzen.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn.<br> </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750537#m1750537 Bernd 2019-06-16T17:43:38Z 2019-06-16T17:48:06Z SQL ausgeben <p>Hallo,</p> <p>ist es möglich eine Testausgabe von</p> <pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">unterwegsProjektzeitraum</span><span class="token punctuation">(</span><span class="token variable">$mysqli</span><span class="token punctuation">,</span> <span class="token variable">$artikelID</span><span class="token punctuation">,</span> <span class="token variable">$Datum_von</span><span class="token punctuation">,</span> <span class="token variable">$Datum_bis</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$D_von</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_von</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_bis</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_bis</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$Ausgabe_D_von</span> <span class="token operator">=</span> <span class="token variable">$D_jahr_von</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_monat_von</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_tag_von</span><span class="token punctuation">;</span> <span class="token variable">$Ausgabe_D_bis</span> <span class="token operator">=</span> <span class="token variable">$D_jahr_bis</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_monat_bis</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_tag_bis</span><span class="token punctuation">;</span> <span class="token variable">$sql</span> <span class="token operator">=</span> <span class="token string double-quoted-string">" SELECT SUM(aa_menge) AS `summe_unterwegsProjektzeitraum` FROM artikel_ausgeliehen WHERE aa_status=2 AND aa_artikelID=? AND aa_datum BETWEEN ? AND ? GROUP BY aa_artikelID, aa_datum LIMIT 1"</span><span class="token punctuation">;</span> <span class="token variable">$res</span> <span class="token operator">=</span> <span class="token variable">$mysqli</span><span class="token operator">-></span><span class="token function">prepare</span><span class="token punctuation">(</span><span class="token variable">$sql</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">bind_param</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"sss"</span><span class="token punctuation">,</span> <span class="token variable">$artikelID</span><span class="token punctuation">,</span> <span class="token variable">$Ausgabe_D_von</span><span class="token punctuation">,</span> <span class="token variable">$Ausgabe_D_bis</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">execute</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">bind_result</span><span class="token punctuation">(</span><span class="token variable">$summe_unterwegsProjektzeitraum</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token variable">$summe_unterwegsProjektzeitraum</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>mir geben zu lassen um zu sehen was passiert? Ich dachte erst so</p> <pre><code class="block language-php"><span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$Ausgabe_unterwegsProjektzeitraum</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>aber da erhalte ich nur float(4) Und genau das ist auch das Problem, ich erhalte eine 4 obwohl ich eigentlich kein Wert halten würd.</p> <p>Wenn ich das SQL direkt im phpMyAdmin ausführe erhalte ich keine Einträge</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> <span class="token function">SUM</span><span class="token punctuation">(</span> aa_menge <span class="token punctuation">)</span> <span class="token keyword">AS</span> <span class="token identifier"><span class="token punctuation">`</span>summe_unterwegsProjektzeitraum<span class="token punctuation">`</span></span> <span class="token keyword">FROM</span> <span class="token identifier"><span class="token punctuation">`</span>artikel_ausgeliehen<span class="token punctuation">`</span></span> <span class="token keyword">WHERE</span> <span class="token identifier"><span class="token punctuation">`</span>aa_status<span class="token punctuation">`</span></span> <span class="token operator">=</span><span class="token number">2</span> <span class="token operator">AND</span> <span class="token identifier"><span class="token punctuation">`</span>aa_artikelID<span class="token punctuation">`</span></span> <span class="token operator">=</span> <span class="token string">'b6af5e94a24e07076e3fe2e7a1219758'</span> <span class="token operator">AND</span> <span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token operator">BETWEEN</span> <span class="token string">'2019-06-22'</span> <span class="token operator">AND</span> <span class="token string">'2019-06-23'</span> <span class="token keyword">GROUP</span> <span class="token keyword">BY</span> <span class="token string">'aa_artikelID'</span><span class="token punctuation">,</span> <span class="token string">'aa_datum'</span> <span class="token keyword">LIMIT</span> <span class="token number">1</span> </code></pre> <p>Deshalb verstehe ich es nicht.</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750497#m1750497 Bernd 2019-06-16T09:07:10Z 2019-06-16T09:07:10Z Wie könnte ich folgendes umsetzen? <p>Moin,</p> <blockquote> <p>Den Zeitraum vorgeben. Dann kannst Du auch die Abfrage formulieren.</p> </blockquote> <p>den habe ich ja in $von und $bis z.B. steht da 2019-06-16 bis 2019-06-22</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750498#m1750498 pl 2019-06-16T09:14:04Z 2019-06-16T09:14:04Z Wie könnte ich folgendes umsetzen? <p>Moin,</p> <blockquote> <blockquote> <p>Den Zeitraum vorgeben. Dann kannst Du auch die Abfrage formulieren.</p> </blockquote> <p>den habe ich ja in $von und $bis z.B. steht da 2019-06-16 bis 2019-06-22</p> </blockquote> <p>Ausgeliehen heißt: Der Artikel wurde nicht zurückgegeben. Du brauchst also auch diese beiden Zeitangaben: Ausgabe, Rücknahme. Dann kannst Du je Artikel abfragen ob der ausgeliehen oder wieder im Bestand ist. MFG</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750501#m1750501 Bernd 2019-06-16T09:34:00Z 2019-06-16T09:34:00Z Wie könnte ich folgendes umsetzen? <p>Ok, meine Idee war</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> <span class="token function">SUM</span><span class="token punctuation">(</span> aa_menge <span class="token punctuation">)</span> <span class="token keyword">AS</span> <span class="token identifier"><span class="token punctuation">`</span>summe_unterwegsProjektzeitraum<span class="token punctuation">`</span></span> <span class="token keyword">FROM</span> <span class="token identifier"><span class="token punctuation">`</span>artikel_ausgeliehen<span class="token punctuation">`</span></span> <span class="token keyword">WHERE</span> <span class="token identifier"><span class="token punctuation">`</span>aa_status<span class="token punctuation">`</span></span> <span class="token operator">=</span><span class="token number">2</span> <span class="token operator">AND</span> <span class="token identifier"><span class="token punctuation">`</span>aa_artikelID<span class="token punctuation">`</span></span> <span class="token operator">=</span> <span class="token string">'a196f40a4bdb40c6551a41cdd3910d53'</span> <span class="token operator">AND</span> <span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token operator">BETWEEN</span> <span class="token string">'2019-06-22'</span> <span class="token operator">AND</span> <span class="token string">'2019-06-23'</span> </code></pre> <p>Als Ergebnis erhalte ich</p> <p><a href="/images/9f5b9b5b-448a-43ba-8a6a-2bf7b9e34cc4.png" rel="noopener noreferrer"><img src="/images/9f5b9b5b-448a-43ba-8a6a-2bf7b9e34cc4.png?size=medium" alt="" loading="lazy"></a></p> <p>Das Problem ist, er zählt jetzt beide Tage zusammen, was ja nicht richtig ist, denn es sind nur 5 unterwegs. Ich brauch aber die SUM weil es ja mehrere Projekt geben kann wo ein Artikel unterwegs ist.</p> <p>Versteht ihr was ich meine?</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750503#m1750503 TS ts-self@online.de https://bitworks.de 2019-06-16T09:46:24Z 2019-06-16T09:46:24Z Wie könnte ich folgendes umsetzen? <p>Hello,</p> <p>also möchtest Du lieber pro Tag gruppieren, also zählen lassen, wieviele Artikel an welchem Tag in dem Bereich unterwegs waren?</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn.<br> </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750504#m1750504 Bernd 2019-06-16T09:47:09Z 2019-06-16T09:47:09Z Meine Idee/Lösung: Wie könnte ich folgendes umsetzen? <p>Was sagt ihr zu meiner Idee/Lösung?</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> <span class="token function">SUM</span><span class="token punctuation">(</span> aa_menge <span class="token punctuation">)</span> <span class="token keyword">AS</span> <span class="token identifier"><span class="token punctuation">`</span>summe_unterwegsProjektzeitraum<span class="token punctuation">`</span></span> <span class="token keyword">FROM</span> <span class="token identifier"><span class="token punctuation">`</span>artikel_ausgeliehen<span class="token punctuation">`</span></span> <span class="token keyword">WHERE</span> <span class="token identifier"><span class="token punctuation">`</span>aa_status<span class="token punctuation">`</span></span> <span class="token operator">=</span><span class="token number">2</span> <span class="token operator">AND</span> <span class="token identifier"><span class="token punctuation">`</span>aa_artikelID<span class="token punctuation">`</span></span> <span class="token operator">=</span> <span class="token string">'a196f40a4bdb40c6551a41cdd3910d53'</span> <span class="token operator">AND</span> <span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token operator">BETWEEN</span> <span class="token string">'2019-06-22'</span> <span class="token operator">AND</span> <span class="token string">'2019-06-23'</span> <span class="token keyword">GROUP</span> <span class="token keyword">BY</span> <span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token keyword">LIMIT</span> <span class="token number">1</span> </code></pre> <p>Habe ich etwas vergessen, ist dieses die Lösung oder würdet ihr es komplett anderes machen? Vielleicht noch als Hinweis, in jedem Projektzeitraum ist die Menge immer gleich, es kann also nicht vorkommen, heute 4 morgen 10 und in drei Tagen 2, das ist vom System ausgeschlossen.</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750506#m1750506 Rolf B 2019-06-16T11:36:19Z 2019-06-16T11:36:19Z Wie könnte ich folgendes umsetzen? <p>Hallo Bernd,</p> <blockquote> <p>Versteht ihr was ich meine?</p> </blockquote> <p>Nein, überhaupt nicht. Erzähle mal ein bisschen mehr über die Bedeutung der Sätze in deiner Table, beschreibe mal, welche fachlichen Sachverhalte sich da wie wiederfinden.</p> <pre><code class="block language-sql"><span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token operator">BETWEEN</span> <span class="token string">'2019-06-22'</span> <span class="token operator">AND</span> <span class="token string">'2019-06-23'</span> </code></pre> <p>verarbeitet auf jeden Fall zwei Tage; die Between-Grenzen sind inklusiv. Wenn er dann doppelt zählt, würde das bedeuten, dass Du für jeden Ausleihtag des Artikels eine Row in der Table hast?</p> <p>Und mir ist auch noch überhaupt nicht klar, welche Erkenntnis Du mit Deiner Query gewinnen willst.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750505#m1750505 Bernd 2019-06-16T11:02:03Z 2019-06-16T11:04:32Z Meine Idee/Lösung: Wie könnte ich folgendes umsetzen? <p>Ich habe noch etwas ergänz, da ich noch immer ein Problem mit meinem Datum habe, welches ich leider derzeit noch auf Deutsch in der Tabelle stehen habe</p> <pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">unterwegsProjektzeitraum</span><span class="token punctuation">(</span><span class="token variable">$mysqli</span><span class="token punctuation">,</span> <span class="token variable">$artikelID</span><span class="token punctuation">,</span> <span class="token variable">$Datum_von</span><span class="token punctuation">,</span> <span class="token variable">$Datum_bis</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$D_von</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_von</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_bis</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_bis</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$Ausgabe_D_von</span> <span class="token operator">=</span> <span class="token variable">$D_jahr_von</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_monat_von</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_tag_von</span><span class="token punctuation">;</span> <span class="token variable">$Ausgabe_D_bis</span> <span class="token operator">=</span> <span class="token variable">$D_jahr_bis</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_monat_bis</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_tag_bis</span><span class="token punctuation">;</span> <span class="token variable">$sql</span> <span class="token operator">=</span> <span class="token string double-quoted-string">" SELECT SUM(aa_menge) AS `summe_unterwegsProjektzeitraum` FROM artikel_ausgeliehen WHERE aa_status=2 AND aa_artikelID=? AND aa_datum BETWEEN ? AND ? GROUP BY `aa_datum` LIMIT 1"</span><span class="token punctuation">;</span> <span class="token variable">$res</span> <span class="token operator">=</span> <span class="token variable">$mysqli</span><span class="token operator">-></span><span class="token function">prepare</span><span class="token punctuation">(</span><span class="token variable">$sql</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">bind_param</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"sss"</span><span class="token punctuation">,</span> <span class="token variable">$artikelID</span><span class="token punctuation">,</span> <span class="token variable">$Ausgabe_D_von</span><span class="token punctuation">,</span> <span class="token variable">$Ausgabe_D_bis</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">execute</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">bind_result</span><span class="token punctuation">(</span><span class="token variable">$summe_unterwegsProjektzeitraum</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$res</span><span class="token operator">-></span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token variable">$summe_unterwegsProjektzeitraum</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Muss ich den komplizierten Weg über das Umwandeln vom Datum gehen oder könnte dieses mySQL auch direkt mit einer Funktion machen?</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750507#m1750507 Rolf B 2019-06-16T11:54:54Z 2019-06-16T11:54:54Z Meine Idee/Lösung: Wie könnte ich folgendes umsetzen? <p>Hallo Bernd,</p> <p>das Umgruppieren wird wohl nötig sein; du kannst es aber eleganter bauen. Das Format YYYY-MM-DD ist übrigens das ISO-Format.</p> <pre><code class="block language-php"> <span class="token variable">$ISO_D_von</span> <span class="token operator">=</span> <span class="token function">convert_german_date_to_iso</span><span class="token punctuation">(</span><span class="token variable">$Datum_von</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$ISO_D_bis</span> <span class="token operator">=</span> <span class="token function">convert_german_date_to_iso</span><span class="token punctuation">(</span><span class="token variable">$Datum_bis</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>(ich habe die Variablen ISO_D genannt, wenn Du das übernimmst, denk an den bind_param).</p> <p>In die Funktionen-Werkzeugkiste kommt dann dies:</p> <pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">convert_german_date_to_iso</span><span class="token punctuation">(</span><span class="token variable">$german_date</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$teile</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span> <span class="token variable">$german_date</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$teile</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span></span>-<span class="token interpolation"><span class="token variable">$teile</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span></span>-<span class="token interpolation"><span class="token variable">$teile</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span></span>"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Die Funktion kann man noch aufgemotzen, damit sie auch "4.5.18" korrekt verarbeitet, aber solange Du sicher sein kannst, dass dein $german_date immer exakt im "tt.mm.jjjj" Format ist, kannst Du Dir das sparen.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750508#m1750508 Der Martin 2019-06-16T12:07:00Z 2019-06-16T12:07:00Z Wie könnte ich folgendes umsetzen? <p>Hallo Rolf,</p> <blockquote> <blockquote> <p>Versteht ihr was ich meine?</p> </blockquote> <p>Nein, überhaupt nicht. Erzähle mal ein bisschen mehr über die Bedeutung der Sätze in deiner Table, beschreibe mal, welche fachlichen Sachverhalte sich da wie wiederfinden.</p> </blockquote> <p>es beruhigt mich, dass ich nicht der einzige bin. Ich verstehe zwar einige Details von Bernds Ausführungen, aber mir fehlt einfach noch der Zusammenhang, der Überblick. Vor allem auch das Verständnis, wie Projekte, Artikel und Zeiträume gedanklich (nicht programmtechnisch!) miteinander in Verbindung stehen.</p> <blockquote> <p>Und mir ist auch noch überhaupt nicht klar, welche Erkenntnis Du mit Deiner Query gewinnen willst.</p> </blockquote> <p>Genau: Wieviel Stück eines Artikels zu einem gegebenen Zeitpunkt noch "in stock" sind? Oder wieviele in einem bestimmten Intervall ausgeliehen (und zurückgegeben?) wurden? Oder die Bestands-Änderung in einem Intervall?</p> <p>Schönen Sonntag noch,<br>  Martin</p> <div class="signature">-- <br> Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag. </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750565#m1750565 Bernd 2019-06-17T09:38:01Z 2019-06-17T09:38:01Z Wie könnte ich folgendes umsetzen? <p>Hallo,</p> <blockquote> <p>Nein, überhaupt nicht. Erzähle mal ein bisschen mehr über die Bedeutung der Sätze in deiner Table, beschreibe mal, welche fachlichen Sachverhalte sich da wie wiederfinden.</p> </blockquote> <p>Ich habe eine Tabelle Artikel, weiter gibt es noch eine Tabelle Unterwegs unterwegs und nicht benutzbar. Jetzt möchte ich einen Artikel für den Zeitraum 16.06.2019 - 22.06.2019 bestellen. Zuerst schau ich, ob dieser Artikel in der Menge verfügbar ist, also wenn alles im Lager wäre. Wenn dieses der Fall ist, muss ich schauen ob dieser Artikel für den gewählten Projektzeitraum verfügbar ist. Dann muss ich noch schauen ob ein Artikel als Reparatur oder eigner Lieferschein hinterleg ist. Erst wenn alles passt darf dieser Artikel bestätigt werden.</p> <p>Bis jetzt habe ich bzw. wir dieses händisch überprüft dieses führte in der letzten Zeit zu Fehlern, welche nicht schön sind bzw. einem Ärger beschert. Deshalb möchte ich dieses jetzt durch das System prüfen lassen.</p> <p>Variable kann der Wert Reparatur sein. Es kann auch ein Artikel verschickt werden der Defekt ist, kommt immer drauf an wo dieser aufgehängt wird. Wenn ein Banner in 10 Meter Höhe aufgehängt wird sieht man eine ausgerissene Öse z.b. nicht. Wenn dieser auf Augenhöhe hängt dann ist es schon fraglich.</p> <blockquote> <pre><code class="block language-sql"><span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token operator">BETWEEN</span> <span class="token string">'2019-06-22'</span> <span class="token operator">AND</span> <span class="token string">'2019-06-23'</span> </code></pre> <p>verarbeitet auf jeden Fall zwei Tage; die Between-Grenzen sind inklusiv. Wenn er dann doppelt zählt, würde das bedeuten, dass Du für jeden Ausleihtag des Artikels eine Row in der Table hast?</p> </blockquote> <p>Genau, jeder Tag wo der Artikel unterwegs ist, hat eine Zeile. Ist ein Artikel vom 22.06.2019 - 23.06.2019 unterwegs, hat dieser zwei Einträge. Er darf in der Summe dann natürlich die Summe dann nicht x Anzahl der Zeilen nehmen.</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750538#m1750538 Bernd 2019-06-16T17:47:09Z 2019-06-16T17:49:00Z SQL ausgeben <p>Ok, es lag an diesem</p> <pre><code class="block language-php"><span class="token variable">$D_von</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_von</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_bis</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_bis</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_bis</span> <span class="token operator">=</span> <span class="token variable">$D_bis</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$Ausgabe_D_von</span> <span class="token operator">=</span> <span class="token variable">$D_jahr_von</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_monat_von</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_tag_von</span><span class="token punctuation">;</span> <span class="token variable">$Ausgabe_D_bis</span> <span class="token operator">=</span> <span class="token variable">$D_jahr_bis</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_monat_bis</span><span class="token operator">.</span><span class="token string double-quoted-string">"-"</span><span class="token operator">.</span><span class="token variable">$D_tag_bis</span><span class="token punctuation">;</span> </code></pre> <p>dieses kann ich wohl <em>nicht</em> in der Funktion ausführen, warum auch immer. Wenn ich die Funktion von Rolf nehme und den Wert direkt an die Funktion übergeben, dann erhalte ich auch keinen Eintrag mehr.</p> <p>Aber warum ist dieses so?</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750539#m1750539 Der Martin 2019-06-16T19:06:44Z 2019-06-16T19:11:43Z SQL ausgeben <p>Hallo Bernd,</p> <blockquote> <pre><code class="block language-php"> <span class="token variable">$D_von</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_von</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_monat_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$D_jahr_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">;</span> </code></pre> </blockquote> <p>PHP ist bei Variablennamen <a href="https://www.php.net/manual/en/language.variables.basics.php" rel="nofollow noopener noreferrer">case-sensitive</a>. Und vergleiche mal ganz genau deine Schreibweise von $D_von in den oben zitierten vier Zeilen.</p> <p>Und das ist wieder so ein Fall: Wenn du dir während der Entwicklungsphase <strong>alle</strong> Meldungen anzeigen lassen würdest, auch die Notices, dann hättest du das sofort bemerkt.</p> <p>Schönen Abend noch,<br>  Martin</p> <div class="signature">-- <br> Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag. </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750540#m1750540 Rolf B 2019-06-16T19:29:21Z 2019-06-16T19:29:21Z SQL ausgeben <p>Hallo Bernd,</p> <p>Variablennamen in PHP sind case sensitive.</p> <pre><code class="block language-php"> <span class="token variable">$D_von</span> <span class="token operator">=</span> <span class="token function">explode</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"."</span><span class="token punctuation">,</span><span class="token variable">$Datum_von</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$D_tag_von</span> <span class="token operator">=</span> <span class="token variable">$D_Von</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span> </code></pre> <p>Was fällt Dir auf?</p> <p>Lass die E_NOTICE-Errors an, wenn du testest! Jede Notice ist eine zu viel.</p> <p>Alternativ schreib Dir einen Error-Handler für E_NOTICE und ggf. noch E_STRICT Fehler, wenn Du vermeiden willst, dass die Dir das UI versauen. Ich habe mal ein Kommandozeilenspielzeug geschrieben:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">require_once</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'notice_error_handler.php'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"Begin test\n"</span><span class="token punctuation">;</span> <span class="token variable">$a_von</span> <span class="token operator">=</span> <span class="token number">3</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$a_Von</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"\n\nEnd of test ---------------------\n\n"</span><span class="token punctuation">;</span> <span class="token function">report_notices</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </span></code></pre> <p>Wenn ich das laufen lasse, kommt dies hier.</p> <pre><code class="block">Begin test End of test --------------------- ----------------------------------------- You hit a snafu! E_NOTICE Undefined variable: a_Von - in D:\temp\php\test_notice.php7:8 </code></pre> <p>Der eigentlich Ablauf ist ungestört, und erst am Ende stellt sich heraus, dass unterwegs was passiert ist. Das gelingt mit diesem notice_error_handler.php:</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$error_notices</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token function">set_error_handler</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'myHandlerForMinorErrors'</span><span class="token punctuation">,</span> <span class="token class-name">E_NOTICE</span> <span class="token operator">|</span> <span class="token class-name">E_STRICT</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">function</span> <span class="token function-definition function">myHandlerForMinorErrors</span><span class="token punctuation">(</span><span class="token variable">$errno</span><span class="token punctuation">,</span> <span class="token variable">$errstr</span><span class="token punctuation">,</span> <span class="token variable">$errfile</span><span class="token punctuation">,</span> <span class="token variable">$errline</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">global</span> <span class="token variable">$error_notices</span><span class="token punctuation">;</span> <span class="token variable">$error_notices</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">[</span> <span class="token string double-quoted-string">"type"</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token variable">$errno</span> <span class="token operator">==</span> <span class="token constant">E_NOTICE</span> <span class="token operator">?</span> <span class="token string double-quoted-string">"E_NOTICE"</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">"E_STRICT"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"message"</span> <span class="token operator">=></span> <span class="token variable">$errstr</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"location"</span> <span class="token operator">=></span> <span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$errfile</span></span>:<span class="token interpolation"><span class="token variable">$errline</span></span>"</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token constant boolean">true</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function-definition function">report_notices</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">global</span> <span class="token variable">$error_notices</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$error_notices</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"-----------------------------------------\nYou hit a snafu!\n\n"</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$error_notices</span> <span class="token keyword">as</span> <span class="token variable">$notice</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<span class="token interpolation"><span class="token variable">$notice</span><span class="token punctuation">[</span>type<span class="token punctuation">]</span></span> <span class="token interpolation"><span class="token variable">$notice</span><span class="token punctuation">[</span>message<span class="token punctuation">]</span></span>\n - in <span class="token interpolation"><span class="token variable">$notice</span><span class="token punctuation">[</span>location<span class="token punctuation">]</span></span>\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token function">error_reporting</span><span class="token punctuation">(</span><span class="token constant">E_ALL</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </span></code></pre> <p>error_reporting steht auf E_ALL, aber für E_NOTICE Und E_STRICT ist ein custom error handler definiert, dessen Callback-Funktion TRUE zurückgibt. TRUE heißt: Alles klar, Onkel PHP, ich habe das Problem gelöst, ist nix mehr zu tun für Dich. PHP gibt dementsprechend keine Fehlermeldung mehr aus. Aber der Errorhandler hat sich die Meldung gemerkt.</p> <p>Und wenn Du report_notices() aufrufst, rotzt er alles raus.</p> <p>Das ist jetzt Spielzeug, eine reale Implementierung würde die Fehlermeldungen in HTML einpacken und in den Footer schreiben. Wenn Du es ganz komfortabel haben willst, bau noch das Ergebnis von debug_backtrace mit ein, um einen Stacktrace zu bekommen.</p> <p>Man hat zwei Möglichkeiten, sowas zu benutzen.</p> <p>Möglichkeit 1: Man hat auf der Entwickler- oder Test-Maschine eine andere Version von notice_error_handler.php als auf der Produktionsmaschine. Die Produktivversion definiert einen Dummy für report_notices und setzt error_reporting auf E_WARNING, die Testversion ist geschwätzig.</p> <p>Möglichkeit 2: Dein Web kennt einen Testschalter, mit dem man einschalten kann, dass am Ende jedes Requests report_notices aufgerufen wird. Eine PHP Anwendung von mir hat im Footer einen undekorierten Link, der in $_SESSION einen entsprechenden Schalter zwischen TRUE und FALSE umschaltet.</p> <p>Wichtig ist jedenfalls, dass Dir Notice-Error wegen undefinierter Variablen nicht entgehen.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750541#m1750541 Der Martin 2019-06-16T19:55:55Z 2019-06-17T07:12:27Z SQL ausgeben <p>n'Abend,</p> <blockquote> <p>Variablennamen in PHP sind case sensitive.</p> </blockquote> <p>das habe ich <a href="https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750539" rel="noopener noreferrer">fast eine halbe Stunde früher</a> auch schon festgestellt.</p> <blockquote> <p>Lass die E_NOTICE-Errors an, wenn du testest! Jede Notice ist eine zu viel.</p> </blockquote> <p>Absolut. Jede Notice ist ein Hinweis darauf, dass irgendwas zwar noch "beherrschbar", aber nicht einwandfrei korrekt ist.</p> <blockquote> <p>Alternativ schreib Dir einen Error-Handler für E_NOTICE und ggf. noch E_STRICT Fehler, wenn Du vermeiden willst, dass die Dir das UI versauen. Ich habe mal ein Kommandozeilenspielzeug geschrieben:</p> </blockquote> <p>Das ist ein guter Ansatz!</p> <p>Coap,<br>  Martin</p> <div class="signature">-- <br> Es gibt keine dummen Fragen - nur dumme Antworten. </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750543#m1750543 Rolf B 2019-06-16T21:32:10Z 2019-06-16T21:32:10Z SQL ausgeben <p>Hallo Martin,</p> <blockquote> <p>das habe ich fast eine halbe Stunde früher auch schon festgestellt.</p> </blockquote> <p>nein, ich glaube nicht. Das haben wir vermutlich zeitgleich festgestellt, jedenfalls stand dein Beitrag noch nicht da als ich auf "antworten" drückte.</p> <p>Aber glaubst Du, dieser myHandlerForMinorErrors Tee war fertig in der Isokanne? Den habe ich frisch aufgebrüht (mit Hilfe eines Teebeutels von <a href="https://stackoverflow.com/questions/4261133/notice-undefined-variable-notice-undefined-index-and-notice-undefined/45285367#45285367" rel="noopener noreferrer">stackoverflow</a>), und dieser Ausflug in die Hexenküche hat mich 'ne halbe Stunde gekostet, bis die Brühe so schmeckte wie sie sollte und ich zurück am "speichern" Button war.</p> <p> <em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750544#m1750544 Der Martin 2019-06-16T21:36:51Z 2019-06-16T21:36:51Z SQL ausgeben <p>Hallo Rolf,</p> <blockquote> <blockquote> <p>das habe ich fast eine halbe Stunde früher auch schon festgestellt.</p> </blockquote> <p>nein, ich glaube nicht. Das haben wir vermutlich zeitgleich festgestellt, jedenfalls stand dein Beitrag noch nicht da als ich auf "antworten" drückte.</p> </blockquote> <p>du meinst, gut Ding will Weile haben?</p> <blockquote> <p>Aber glaubst Du, dieser myHandlerForMinorErrors Tee war fertig in der Isokanne? Den habe ich frisch aufgebrüht (mit Hilfe eines Teebeutels von <a href="https://stackoverflow.com/questions/4261133/notice-undefined-variable-notice-undefined-index-and-notice-undefined/45285367#45285367" rel="noopener noreferrer">stackoverflow</a>), und dieser Ausflug in die Hexenküche hat mich 'ne halbe Stunde gekostet, bis die Brühe so schmeckte wie sie sollte und ich zurück am "speichern" Button war.</p> </blockquote> <p>Ah, okay. Und ich habe halt sofort "Iiih!" geschrien, als ich einen Käfer im Tee gefunden habe, ohne erst nachzuforschen, wo er herkam.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag. </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750575#m1750575 Rolf B 2019-06-17T10:55:19Z 2019-06-17T10:55:19Z Wie könnte ich folgendes umsetzen? <p>Hallo Bernd,</p> <p>das klingt alles noch sehr unsortiert. In deinem Kopf ist sicherlich alles klar, aber meiner schwirrt . Vor allem, weil ich die Begriffe aus deiner Beschreibung nicht auf das abgebildet bekomme, was wir bisher auf SQL Ebene diskutiert haben. Das Thema "Artikelzustand" ist darüber hinaus noch eine ganz neue Baustelle.</p> <p>Vor allem komme ich mit dem Begriff "Artikel" und "Menge" nicht klar. Angenommen, der Artikel ist "Biertisch", das liegt mir näher als Banner . Du hast 10 Biertische im Inventar, und irgendwer möchte 5 bestellen. 4 sind für den fraglichen Zeitraum bereits vergeben.</p> <p>Die Artikel-ID 'a196f40a4bdb40c6551a41cdd3910d53' würde nun für "Biertisch" stehen? Oder für "Biertisch Nr. 7"?</p> <p>Und was steht in der der Reparaturentabelle? "3 Biertische kaputt"? Oder sind es 3 Einträge: "Biertisch Nr. 2 hat Kerben", "Biertisch Nr. 5 hat rostige Beine", "Biertisch Nr. 9 angebrochen"?</p> <p>Ein Lagerist müsste also einzeln schauen, wie der Zustand der im Zeitraum verfügbaren Tische ist. Kerben und rostige Beine mag akzeptabel sein, "angebrochen" sicherlich nicht.</p> <p>Du kannst also doch eigentlich nichts weiter tun als für jeden Tisch schauen, ob er im fraglichen Zeitraum keine Reservierung hat, und dann seinen Reparaturstatus dazu anzeigen. Und ein Mensch muss dann Stück für Stück schauen, ob dieser Status für das neue Projekt akzeptabel ist.</p> <p>Aber vielleicht habe ich ja auch komplett Bahnhof verstanden⁉️</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750577#m1750577 Bernd 2019-06-17T11:11:47Z 2019-06-17T11:11:47Z Wie könnte ich folgendes umsetzen? <p>Hallo,</p> <p>bleiben wir beim Biertisch </p> <p>Lagerbestand komplett: 6 Stück</p> <p>Reparatur 1</p> <p>Lagerbestand aktuell: 5 Stück</p> <p>Projekt 1 vom 17.06.2019 - 22.06.2019 3 Stück</p> <p>Projekt 2 vom 19.06.2019 - 19.06.2019 5 Stück</p> <p>Das System muss jetzt erkenne dass der Lagerbestand aktuell 5 Stück sind (kpl. 6 - 1) und muss schauen ob im Zeitraum schon welche unterwegs sind, in meinem Fall also 3. In diesem Fall geht es nicht, es sind zwar wenn alle zurück kommen 5 da bzw. wenn der eine repariert wurde 6 aber 3 sind auf einem anderen Event. Ich kann also nur 2 bestellen.</p> <blockquote> <p>Die Artikel-ID 'a196f40a4bdb40c6551a41cdd3910d53'</p> </blockquote> <p>Genau, dieses ist intern die Artikel Id bzw. der dazugehörige Code.</p> <blockquote> <p>Und was steht in der der Reparaturentabelle? "3 Biertische kaputt"? Oder sind es 3 Einträge: "Biertisch Nr. 2 hat Kerben", "Biertisch Nr. 5 hat rostige Beine", "Biertisch Nr. 9 angebrochen"?</p> </blockquote> <p>Die Biertische sind nicht nochmals unterteilt, dieses wäre viel zu viel Arbeit. In der Reparaturentabelle steht z.B. Artikel a196f40a4bdb40c6551a41cdd3910d53 1x defekt. Der defekte ist eigentlich aus dem Lagerbestand heruasgenommen nur wenn eine Anfrage kommt und ich es nicht anderes geregelt bekomme, weil etwas nicht mehr besorgt werden kann oder die Produktion schafft es nicht mehr neu herzustellen dann wird geschaut ob ein Artikel der als Reparatur hinterlegt ist doch genommen werden kann. 100% automatisch wird es nie laufen können.</p> https://forum.selfhtml.org/self/2019/jun/16/wie-koennte-ich-folgendes-umsetzen/1750582#m1750582 Rolf B 2019-06-17T12:09:30Z 2019-06-17T12:09:30Z Wie könnte ich folgendes umsetzen? <p>Hallo Bernd,</p> <blockquote> <p>Die Artikel-ID 'a196f40a4bdb40c6551a41cdd3910d53' würde nun für "Biertisch" stehen? Oder für "Biertisch Nr. 7"?</p> </blockquote> <p>Das hast Du nicht direkt beantwortet, aber daraus</p> <blockquote> <p>Die Biertische sind nicht nochmals unterteilt,</p> </blockquote> <p>lese ich, dass die Artikel-ID den Artikel-Typ "Biertisch" bezeichnet und nicht den einzelnen Tisch. Ok.</p> <p>Und ich nehme an, es gibt eine Tabelle "Artikel", in der steht, dass Du 6 Biertische hast. Aber ich habe dich so verstanden, dass die kaputten Tische in einer separaten Tabelle gezählt werden?</p> <p>In dem Fall müsstest Du tatsächlich eine Abfrage über die Tage machen, und prüfen, ob es darunter Tage gibt wo zu wenig da ist. Dafür kann man HAVING verwenden. Das ist sozusagen ein WHERE, der auf das GROUP BY Ergebnis wirkt.</p> <pre><code class="block language-sql"><span class="token keyword">SELECT</span> aa_datum<span class="token punctuation">,</span> <span class="token function">COUNT</span><span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span> <span class="token keyword">FROM</span> artikel_ausgeliehen <span class="token keyword">WHERE</span> aa_status<span class="token operator">=</span><span class="token number">2</span> <span class="token operator">AND</span> aa_artikelID<span class="token operator">=</span>? <span class="token operator">AND</span> aa_datum <span class="token operator">BETWEEN</span> ? <span class="token operator">AND</span> ? <span class="token keyword">GROUP</span> <span class="token keyword">BY</span> <span class="token identifier"><span class="token punctuation">`</span>aa_datum<span class="token punctuation">`</span></span> <span class="token keyword">HAVING</span> <span class="token function">COUNT</span><span class="token punctuation">(</span><span class="token operator">*</span><span class="token punctuation">)</span> <span class="token operator"><</span> ? </code></pre> <p>Für das vierte Fragezeichen übergibst Du die benötigte Anzahl im Zeitraum, und bekommst eine Liste der Tage, wo zu wenig da ist. Ist das Ergebnis leer, hast Du an jedem Tag genug da. Wie Du das nun sinnvoll mit der Liste der defekten Artikel zusammendrehst, weiß ich nicht. Vermutlich hängt das auch davon ab, wie der Arbeitsprozess aussehen soll.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div>