Array in String umwandeln und mit Kommas separieren

TMM

Mitglied
Hallo Leute,
ich bins mal wieder, nachdem ich die Methoden (implode, explode, serialize), die im Web vorgeschlagen werden ausprobiert habe und ich es mal wieder nicht hinbekomme, wende ich mich nun ans Forum meines Vertrauens :D

Folgendes hab ich:

PHP:
<?php

// Feststellen, welches Level der User hat
$stmt = $db->prepare(
                ' SELECT
                        wb_id
                  FROM
                        USER_WB_BESITZ
                  WHERE
                        user_name = ? ');

//  Parameter füllen
$stmt->bind_param('s', $_SESSION['username']);  
// Statement abschicken
$stmt->execute();
// Ergebnisse an Variablen binden
$stmt->bind_result($wbid);

// Array deklarieren
  $ergebnis = array();
  $i = 0;
  // Array ausgeben  
  while($stmt->fetch()) { 
            $ergebnis[$i]=$wbid;
            $i++; 
            
            var_dump($wbid);
            $vorhandene_wb = $wbid;
  }

Bei der Abfrage kommen in diesem Beispiel 6 Ergebnisse (Nummern 1-6) raus. Dieses Ergbnis im Array brauche ich jetzt als String in dieser Schreibweise '1','2','3','4','5','6' um es in der nächsten Abfrage wieder verwenden zu können. Ich habe versucht es mit implode(',', $wbid) hinzubekommen, aber dann spuckt er mir folgende Fehlermeldung aus:

PHP:
Warning: implode() [function.implode]: Invalid arguments passed in /home/.../public_html/.../php/abfrage_wb_erwerb.php on line 26
int(1)

und zwar für jede einzelne Zahl bis 6, jetzt meine Frage, was mache ich falsch und wie kann ich dann die Formatierung zum o.g. String hinbekommen.

Die Variable $wbid sieht mit var_dump so aus:

PHP:
int(1) int(2) int(3) int(4) int(5) int(6)

Für schnelle Hilfe bin ich wie immer dankbar ;)
 
Ich habe versucht es mit implode(',', $wbid) hinzubekommen

Warum $wbid? Du schreibst selbst, dass es sich dabei um eine Variable handelt. Was die Funktion erwartet kannst du hier nachlesen.
Das eigentliche Ergebnis schreibst du doch in $ergebnis hinein; das sollte nach Beendigung der Whileschleife also das komplette Array darstellen, oder nicht?

PHP:
while($stmt->fetch()) { 

  //wenn die Indizes ab 0 aufsteigen sollen, kannst du dir $i klemmen
  $ergebnis[]=$wbid; 

  // macht für mich keinen Sinn, weil die Variable immer neu überschrieben wird
  $vorhandene_wb = $wbid;
}

$erg_string = implode(',', $ergebnis);


Probier's mal so.

edit: @ Joe das kann natürlich sein.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Joe
// macht für mich keinen Sinn, weil die Variable immer neu überschrieben wird
$vorhandene_wb = $wbid;

Ich wollte grad auf die Zuweisungsopperatoren hinweisen, ich schätze sowas hat er versucht.

$vorhandene_wb .= $wbid

Damit kann man an einen bereits vorhandenen String einen weiteren dranhängen inkl. Hochkommas und usw.

Aber
$erg_string = implode(',', $ergebnis);
Sollte das Problem effizienter lösen :)

edit: @para_noid
Hehe auch gut möglich aber um die Zeit freut man sich eh über jeden Vorschlag. :D
Find ich hier im Forum grad so gut das einen meistens immer wer weiterhilft.
 
Zuletzt bearbeitet:
Sorry Leute, dass ich das Thema hab schleifen lassen ;) Hab da noch nicht weiter dran gearbeitet, da noch ein paar andere Dateien Vorrang hatten. Werde Eure Vorschläge bei Gelegenheit ausprobieren und mich dann wieder melden :)
 
Problem ist inzwischen ad acta gelegt, danke an alle, die geholfen haben!
 
Zuletzt bearbeitet:
Zurück