Wie speichere ich mehrere Variablen in einem Array im Array?

... komplette Frage anzeigen

4 Antworten

Ich würde versuchen, in $pid den Zeilenumbruch durch einen Platzhalter zu ersetzen (z. B. |) und dann eine Replace-Funktion im SQL auf die Spalte barcode anzuwenden, sodass weder links noch rechts vom Gleichheitszeichen ein Zeilenumbruch vorkommt.

Pseudocode:

...WHERE Replace(barcode, '\\n', '|') = '" . str_replace($pid, "\\n", "|") . "'"...

Die genauen Ersetzungsbefehle und das Zeichen für den Zeilenumbruch musst du dir noch der Sprache entsprechend heraussuchen.

Antwort bewerten Vielen Dank für Deine Bewertung

Du könntest dir einen Join bauen.

Bei der Abfrage
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) { $pid = $row['ean']; }
Flitzt er zeilenweise alle Werte durch, du merkst dir aber nur den letzten.

Es wäre wohl sinnvoll im Bauch dieser Abfrage weiterzumachen.

Alternativ kannst du dir auch mal "next_result" ansehen:
http://php.net/manual/en/function.sqlsrv-next-result.php

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Mezzo21
23.12.2015, 17:10

Im Bauch weitermachen war auch meine Idee, aber auch hier wird nur mit dem letzten Datensatz aus dem Array weitergemacht :(

0

gar nicht: der 2. abschnitt (jetzt sollen alle Produktinfos abgefragt werden) kommt in die 1. while schleife.

Antwort bewerten Vielen Dank für Deine Bewertung

Du könntest dies auch mit einem Join regeln, das wäre sicher die elegantere Lösung! In etwa so:SELECT a.*, b.* FROM products AS a LEFT JOIN shoppingcart AS b ON(a.pid=b.pidref) WHERE b.userid='".\\$loginnames."'";

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?