2016-11-13 5 views
0

まずはお読みいただきありがとうございます。
私は私のWarning: Illegal string offset 'BossName'
を与え、この機能設定テーブルの最初の列を取得します

function SelectHydross($conn){ 
    $sql = "SELECT * from HydrossTheUnstable"; 
    $data = $conn->query($sql); 

    $title = $data->fetchColumn(1); 
    echo '<div><table>'; 
    echo '<tr>'; 
    echo "<th>" . $title['BossName'] . "</th>"; 

ライン70を抱えていることは次のとおりです。echo "<th>" . $title['BossName'] . "</th>";

私はそれがない

function SelectHydross($conn){ 
    $sql = "SELECT * from HydrossTheUnstable"; 
    $data = $conn->query($sql); 
    $title = $data->fetch(PDO::FETCH_ASSOC); 
    echo '<div><table>'; 
    echo '<tr>'; 
    echo "<th>" . $title['BossName'] . "</th>"; 

このコードを使用している場合最初の列をスキップし、2番目の列から開始します。
私は現時点でどのような方法を知らないと私はいくつかの助けを求めたいです!

これはコメントで述べたように、私のテーブルが

enter image description here

+4

'fetchColumn'は、単一の列の値を取得します

手動:

例。単一の列の値は配列ではありません。 – apokryfos

+0

私たちは皆、これがどうやって終わるのか知っています。 –

+0

また、fetchColumn();ゼロベースのインデックスです。したがって、 'fetchColumn(2);は' GuildName'カラムになります**マニュアルを読む**それは何のためにそこにあります – RiggsFolly

答えて

2

私が繰り返すことのないコメント(それらを読むことができます)に概説したように、行をスキップできるオフセットでLIMITを使用できます。

I:LIMIT 1,10(SELECTステートメント内)。

[LIMIT {[offset,] row_count | row_count OFFSET offset}] 
1

どのように見えるかで、fetchColumnは1行をターゲットとした値ではなく配列を返します。

$title = $data->fetch(PDO::FETCH_ASSOC); 

$title = $data->fetchColumn(2); 

とあなたの最初のソリューションは動作します:

は、この行を置き換えます。

編集:そうでない場合は、この行の前に結果を取得している可能性があります。 PDOStatement::fetchは行セットの最初の行を返しますが、2番目の行では始まらない

+1

'$ title = $ data-> fetchColumn(1);' BossMan'カラム(ゼロベースのインデックス)を取得する – RiggsFolly

+2

OP:* "このコードを使用している場合は、' $ title = $ data-> fetch(PDO :: FETCH_ASSOC); '...最初の列をスキップして2番目で始まります。 私は現時点では方法がわかりません" * - Um ... they are not they既にそれを使っていますか? –

+0

ええと、私は両方を試してみましたが、2番目のコードで見てきたように、最初の列をスキップしました。お返事ありがとうございます。 – pbahmann1

関連する問題