2017-08-20 9 views
0

PHP 7とMySQL。データベースに格納された一連のラベルを取得し、各ラベルを独自のセッション変数に配置して、アプリケーションでタブラベルとして使用できるようにしたいと考えています。セッション変数ストレージへのデータベースの取得

データを取得してエコーすることはできますが、対応するセッション変数はすべて設定されていません。

<?php 

require_once('dbconnect.inc.php'); 

$_SESSION['histopic'] = "dash"; 

$numnames = 100; 

for ($i = 1; $i <= $numnames; $i++) { 

    $stmt = $pdo->prepare('SELECT hislabelsName FROM hislabels WHERE hislabelsID = ?'); 

    $temp = $i; 

    $stmt->execute(array($temp)); 
    $result = $stmt->fetchALL(); 

    foreach ($result as $row) { 
     $_SESSION['hislabelsName$i'] = $row["hislabelsName"]; 
    } 

    echo $_SESSION['hislabelsName$i'] . "<br>"; 
    echo $_SESSION['hislabelsName5'] . "<br>"; 
} 

echo $_SESSION['hislabelsName5'];は、未定義のインデックスエラーを生成します。

これを修正するにはどうすればよいですか?

TIA。

+4

てみてください一重引用符の代わりに二重引用符を使用する。例えば$ _SESSION ["hislabelsName $ i"] – thepieterdc

+0

@thepieterdcが​​正しいです。一重引用符は、その中にラップされる文字列だけをサポートし、変数値は解析できません。 – Junaid

+1

[PHPの一重引用符と二重引用符の違いは何ですか?](https://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted-and -double-quoted-strings-in-php) –

答えて

0

あなたはこのような二重引用符を使用する必要があります。

$_SESSION["hislabelsName$i"] = $row["hislabelsName"]; 

ます。また、このようにそれを実行します。

$_SESSION["historylabelsName][$i] = $row["hislabelsName"]; 

その後エコーのいずれか:

echo $_SESSION["hislabelsName5"]またはecho $_SESSION["hislabelsName][5];

関連する問題