2016-12-20 4 views
-1

Ich habe diesen Fehler, den ich nicht lösen kann scheinen.Hinweis: Array zu String-Konvertierung in PDO

Hier ist der Code

$this->stmt = $this->handle->prepare("SELECT * FROM tb_ph WHERE totalprofit = 0 AND status = '1' AND checks = ''"); 

$var = $this->stmt->fetchAll(); 

$var eine mehrdimensionale Array zurückgibt, die ich durch so eine Schleife lieben würde wie ihre jeweiligen ID und Benutzernamen zu erhalten. Nun das Problem ist, dass, wenn ich

tun
foreach($var as $key => $value){ 
    $id = $value['id']; 
    $username = $value['username']; 
    $phone = $value['phone']; 
} 

ich den Hinweis erhalten: Array in String-Konvertierungsfehler.

var_dump($var) gibt

Array 
(
    [0] => Array 
     (
      [id] => 3 
      [0] => 3 
      [username] => rose 
      [1] => rose 
      [phone] => +2782345578952 
      [2] => +2782345578952 
     ) 

    [1] => Array 
     (
      [id] => 4 
      [0] => 4 
      [username] => josh 
      [1] => rose 
      [phone] => +0182345578952 
      [2] => +0182345578952 
     ) 

) 

Wie kann ich die Schleife jedes Mal nur id, Benutzername und Telefon für die beiden Treffer bekommen zu machen?

+1

Wo ist Ihr Code, der die Benachrichtigung verursacht? Es wäre besser, wenn Sie Ihren Code-Versuch zeigen, damit wir Ihnen helfen können, Ihren Fehler zu finden, als nur zu erwarten, dass jemand den Code für Sie schreibt, und Sie nie lernen, Ihren eigenen Code richtig zu debuggen. – Sean

+0

Das ist der Code dort. außer ich verstehe nicht, was Sie mit Code-Versuch – ebuka

+0

meinen Code bedeuten hier nicht eine 'foreach ($ var ...'. Sie zeigen nur eine 'var_dump ($ var)', und da die $ var = $ this-> stmt-> fetchAll(); 'würde auch kein' Notice' erzeugen, dann zeigt man nicht den 'foreach ($ var ... 'code prob. – Sean

Antwort

1

Blick auf dieses Stück sehr eng:

Array 
(
    [0] => Array 
     (

Es zeigt Ihnen, dass das, was Sie haben, ist ein Array von Arrays so was in Ihrem foreach erhalten, ist ein anderes Array

foreach($var as $arr) { 
    /* here $arr is an array in calling print on it will produce the warning you have already seen but ...*/ 
    print $arr[$id]; 

} 

Weil Sie Druck sind nur ein Element eines Arrays hier. In ähnlicher Weise drucken $ arr ['Benutzername']

+0

Vielen Dank. es hat funktioniert, aber es bekommt die Werte nur für die erste Schleife. Wie in meinem Beispiel ist der Array-Wert zwei, aber hier wird nur ein Ergebnis angezeigt. – ebuka

+1

Sie sind herzlich willkommen. Ich bin froh, dass ich geholfen habe. Da Sie hier noch neu sind, möchte ich darauf hinweisen, dass die bevorzugte Art, hier "Danke" zu sagen, darin besteht, gute Fragen und hilfreiche Antworten zu wählen (sobald Sie genug Ansehen haben) und die hilfreichste Antwort zu akzeptieren auf jede Frage, die Sie stellen (was auch Ihrem Ruf einen kleinen Schub verleiht). [Wenn jemand antwortet] (http://stackoverflow.com/help/someone-answers) – e4c5