我的语法有问题。我正在尝试使用php变量作为我当前正在阅读的行的列名。下面是我的代码片段。 文件夹的第一个回声正确显示单词"组织" (我想要的列名,最后一个回显正确显示$ row_ridoh [' organization']的内容为1,但中间带有变量编码的回声不起作用。请指教。
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); }
}
真实问题的回声&#34;仍然没有显示。 这是执行时的输出:
文件夹:组织
注意:未定义的索引:第30行的/export/webs/inside.health/includes/sql/checkuser.php中的组织
这里是真正的问题:
行组织:1
再次 - 感谢您的帮助。我更新了代码以包含var_dump。它列在下面:
array(26){[0] =&gt;字符串(1)&#34; 1&#34; [&#34; ID&#34;] =&GT;字符串(1)&#34; 1&#34; [1] =&GT; string(5)&#34; admin&#34; [&#34;用户名&#34;] =&GT; string(5)&#34; admin&#34; [2] =&GT; string(8)&#34; r1health&#34; [&#34;密码&#34;] =&GT; string(8)&#34; r1health&#34; [3] =&GT; string(19)&#34; 2017-06-29 10:48:34&#34; [&#34;改性&#34;] =&GT; string(19)&#34; 2017-06-29 10:48:34&#34; [4] =&GT;字符串(1)&#34; 1&#34; [&#34;成绩&#34;] =&GT;字符串(1)&#34; 1&#34; [5] =&GT;字符串(1)&#34; 1&#34; [&#34;动作&#34;] =&GT;字符串(1)&#34; 1&#34; [6] =&GT;字符串(1)&#34; 1&#34; [&#34;投诉&#34;] =&GT;字符串(1)&#34; 1&#34; [7] =&GT;字符串(1)&#34; 1&#34; [&#34;疾病&#34;] =&GT;字符串(1)&#34; 1&#34; [8] =&GT;字符串(1)&#34; 1&#34; [&#34;实体&#34;] =&GT;字符串(1)&#34; 1&#34; [9] =&GT;字符串(1)&#34; 1&#34; [&#34;里程碑&#34;] =&GT;字符串(1)&#34; 1&#34; [10] =&GT;字符串(1)&#34; 1&#34; [&#34;组织&#34;] =&GT;字符串(1)&#34; 1&#34; [11] =&GT;字符串(1)&#34; 1&#34; [&#34;出版物&#34;] =&GT;字符串(1)&#34; 1&#34; [12] =&GT;字符串(1)&#34; 1&#34; [&#34;试样&#34;] =&GT;字符串(1)&#34; 1&#34; }
确实将列名正确标记为&#39;组织&#39;。 $ folder变量在上面的代码中设置。如echo输出&#34;文件夹中显示的那样:组织&#34;。
期待其他建议尝试。你认为它与我的php 5.1.6版本有什么关系吗?
答案 0 :(得分:1)
此语法${$folder}
尝试访问与$folder
中存储的字符串同名的变量。根据我收集的内容,您只需要存储在$folder
中的字符串。因此,请将$row_ridoh[${$folder}]
更改为$row_ridoh[$folder]
。
编辑:
我也注意到了这一点:if ($row_ridoh["{$folder}"] == '1') {
。这与您打印出来的内容不同,也是错误的。这应该从$row_ridoh["{$folder}"]
更改为$row_ridoh[$folder]
。