2017-07-05 8 views
-1

構文に何か問題があります。私は現在読んでいる行の列名としてPHP変数を使用しようとしています。以下は私のコードのスニペットです。 "organization"という単語の最初のエコーが適切に表示されます(必要なカラム名と最後のエコーは$ row_ridoh ['organization']の内容を1に正しく表示しますが、 。。教えてください動作しませんPHPを使用した行内の変数の列名5.1.6

while($row_ridoh = mysql_fetch_array($ridoh)) { 
    echo('folder: ' . $folder); 
    echo('heres the real PROBLEM: ' . $row_ridoh[${$folder}]); 
    echo('</br>row organizations: ' . $row_ridoh['organizations']); 
    if ($row_ridoh["{$folder}"] == '1') { 
    echo('keyword in if: ' . $folder); 
    } 
} 

をコード化された私は、コードに提案された変更作られた:。それでも表示されない「本当の問題」のためのエコー

 while($row_ridoh = mysql_fetch_array($ridoh)){ 
     echo('folder: ' . $folder); 
     echo('here the real PROBLEM: ' . $row_ridoh[$folder]); 
     echo('</br>row organizations: ' . $row_ridoh['organizations']); 
     if ($row_ridoh[$folder] == '1') 
     { echo('keyword in if: ' . $folder); } 
     } 

を ここで実行したときに私出力されます。

fここではライン上の/export/webs/inside.health/includes/sql/checkuser.phpで団体30

本当の問題:古い:組織

お知らせ:未定義のインデックス

行団体:1

もう一度お返事ありがとうございます。私はvar_dumpをインクルードするようにコードを更新しました。

アレイ(26){[0] =>文字列(1) "1" ["id"] =>文字列(1) "1" [1] =>文字列(5) " (8) "r1health" [3] =>文字列(19) "admin" ["username"] =>文字列(5) "admin" [2] => ")" 2017-06-29 10:48:34 "[" modified "] => string(19)" 2017-06-29 10:48:34 "[4] => string(1)" 1 " (1) "1" [6] =>文字列(1) "1" = "文字列" (1) "1" [7] =>文字列(1) "1" ["疾患"] =>文字列(1) "1" [8] "1" ["milestones"] =>文字列(1) "1" [10] =>文字列(1)["entity"] =>文字列(1) "1" ["organizations"] => string(1) "1" [11] => string(1) (1) "1" ["標本"] =>文字列(1) "1"}

列名は「組織」と正しくラベル付けされています。上記のコードで$ folder変数が設定されています。エコー出力の "folder:organizations"に表示されます。

お試しください。あなたはそれが私のバージョンのphp 5.1.6と関係があると思いますか?

+0

あなたは '$ row_ridoh [$ folder]'を使用するだけで、変数に文字列または数値があればそれを引用する必要はありません。 – Ajaypayne

+0

提案をお寄せいただきありがとうございます。私もそれを試みたが、まだ仕事をしなかった。ここにあなたの提案と出力があります:フォルダ:組織 通知:未定義のインデックス:/export/webs/inside.health/includes/sql/checkuserの組織。php on line 30 ここに本物の問題: 行の組織:1 – ridohealth

+1

*** [mysql_ * '関数の使用を中止してください](http://stackoverflow.com/questions/12859942/why-shouldnt-use- mysql-functions-in-php)*** [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)はPHP 7で削除されました。[prepared ](http://en.wikipedia.org/wiki/Prepared_statement)[PDO](http://php.net/manual/en/pdo.prepared-statements.php)と[MySQLi](http: /php.net/manual/en/mysqli.quickstart.prepared-statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –

答えて

1

${$folder}この構文では、$folderに格納されている文字列と同じ名前の変数にアクセスします。私が集めるものから、ちょうど$folderに格納された文字列が必要です。したがって、$row_ridoh[${$folder}]$row_ridoh[$folder]に変更してください。

EDIT:

私は、同様にこのことに気づい:if ($row_ridoh["{$folder}"] == '1') {。これはあなたがプリントアウトしているものと異なり、間違っています。これは$row_ridoh["{$folder}"]から$row_ridoh[$folder]に変更する必要があります。

+0

返事をありがとう。私はあなたの提案を試みました:まだ動作していません。以下は変更のあるコードの一部です:while($ row_ridoh = mysql_fetch_array($ ridoh)){ \t \t echo( 'folder:'。$ folder); \t \t \t \t \t \t \tエコー(ここでは本当の問題: '。$ row_ridoh [$ folder]); \t \t \tエコー( '
行の組織:'。$ row_ridoh ['organizations']); \t \t \t($ row_ridoh [$フォルダ] == '1')であれば \t \t \t {エコー( '場合にキーワード:'。$フォルダ)。 } \t} – ridohealth

+0

エラーは何ですか? – sorayadragon

+0

新しいコードと実行された出力でオリジナルの投稿に私の編集を参照してください。感謝します。 – ridohealth

関連する問題