我有一个用户表,其中有五列专门用于一周中每一天的短消息:'mon_subject','tue_subject'等,我用它来制作五个<选择>一周中每天的盒子。每天的用户列表将相同,但与其相关的主题将根据下拉列表而变化。我正在努力使我的数据库搜索算法更有效率,所以我没有做过五次数据库查询,我试过这个:
echo "<select>";
$sql = "SELECT * FROM users ORDER BY lastname ASC";
$usersResult = mysqli_query($db, $sql);
function genScheduleEditor($date) {
include("mysqli_config.php");
global $usersResult;
//loop does this #of users times:
$dayD = date("D", $date);
$subjectDay = $dayD . "_subject"; //'Mon_subject' etc.
$row = mysqli_fetch_array($usersResult,MYSQLI_ASSOC);
$name = $row['username'];
$subject = $row['$subjectDay'];
echo "<option>$subject etc.</option>;
}
echo "</select>";
这是该计划的要点。然后genScheduleEditor()将循环五个日期以产生五个&lt;选择&gt;框。问题是将变量放入
$row['$someColumnName']
似乎不起作用。我怎样才能解决这个问题,我不需要使用不同的列名进行五个数据库查询?
答案 0 :(得分:0)
这行代码:
$subject = $row['$subjectDay'];
表示$row
数组中的条目,其字符为 dollar-sign &#34; subjectDay&#34;。你想要的是变量:
$subject = $row[$subjectDay];
不要做'$x'
或"$x"
之类的事情来避免这样的问题。它毫无意义,可能有害。