2013-10-24 10 views
5
<?php  
$player[] = array(); 
    $team_id = $_SESSION['tid']; 

    $team_pids = $con->prepare("SELECT p_id FROM players_to_team WHERE t_id = ?"); 

    $team_pids->bindParam(1,$team_id); 

    $team_pids->execute(); 

    while($info = $team_pids->fetch(PDO::FETCH_ASSOC)) 
    { 
      $player[] = $info['p_id']; 
      echo $info['p_id']; 
    } 
    $pl_1 = $player[0]; 
    . 
     . 
     . 
    $pl_10 = $player[9]; 

    echo $player[0]; //notice here 
    echo $pl_1;  //notice here 
?> 
<table> 

$query = $con->prepare("SELECT role,name,value FROM players WHERE p_id = '".$pl_1."'"); 
// notice here 
       $query->execute(); 

       while($result = $query->fetch(PDO::FETCH_ASSOC)) 
       { 
        echo "<tr>"; 
        echo "<td>".$result['role']."</td>"; 
        echo "<td>".$result['name']."</td>"; 
        echo "<td>".$result['value']."</td>"; 
      } 
?> 
</tr> 
</table> 

quando echo $ info array funziona bene, ma quando echo $ player array o $ pl_1 variabile o $ risultato array valori Appare ... Array alla conversione string e o/p non mostra. perché?avviso: conversione da stringa a stringa in php

+1

perché entrambi gli array non sono una stringa. Invece di 'echo' utilizzare print_r ($ player [0]); e print_r ($ pl_1); per vedere la matrice. –

+0

puoi usare [var_dump] (http://php.net/var_dump) su qualsiasi variabile per vedere la variabile TYPE e il suo contenuto per capire meglio i tuoi assegnamenti di variabili attraverso il tuo codice. – Latheesan

+0

possibile duplicato di [Riferimento: cosa significa questo errore in PHP?] (Http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – naththedeveloper

risposta

10

Provare a sostituire $player[] = array(); per $player = array(); all'inizio (riga 2).

Questo perché si dichiara una matrice all'indice 0 di questa variabile che viene detta come matrice a causa dello []. Pertanto, si tenta di posizionare un array nell'array, rendendolo multidimensionale.

8

Non è possibile semplicemente echo un array. echo può emettere solo stringhe. echo 'foo' è semplice, sta emettendo una stringa. Cosa deve fare echo esattamente nel caso di echo array('foo' => 'bar')? Per fare in modo che echo emetta qualcosa qui, PHP converte array('foo' => 'bar') in una stringa, che è sempre la stringa "Array". E poiché PHP sa che probabilmente non è quello che vuoi, ti avvisa di ciò.

Il problema è che si sta tentando di trattare un array come una stringa. Correggilo.

+9

Uno non è semplicemente echo un array. – Antoine

Problemi correlati