SQL选择查询使用变量来获取行

时间:2015-06-07 01:42:33

标签: php mysql

我有一个表格,列出了一周中每一天的活动,在一个名为“星期一”,“星期二”等的“个人资料”表的不同列中。我想通过设置变量$ day to date(“l”)来加载该数据,该变量应该返回星期几。我的数据库连接正常工作,并且当我将特定日期添加到fetch数组时,查询会加载星期几,例如 - $ row ['monday']显示星期一的活动;。当我尝试使用变量$ day加载关联日$ row ['$ day']时,结果为0.如何使用我的变量加载该列的结果。 - 如果今天是星期二,当我输入用户名和密码时,星期二列从该用户行加载。

  <form action="" method="post" role="form">
 <div class="form-group">
 <label for="username">User Name:</label>
 <input type="username" class="form-control" name="userName">
 </div>
 <div class="form-group">
 <label for="pin">Pin:</label>
 <input type="pin" class="form-control" name="pin">
 </div>


 <button type="submit" name="submit"  
 class="btn btn default">Submit</button>
 </form> 


 <?php 
 $day = date("l");   

 if(isset($_POST['submit']))
 {



 include('util.php'); 



 $userName = $_POST['userName']; 
 $pin = $_POST['pin']; 

 $sql = "SELECT * FROM profile WHERE userName = '$userName' 
 AND pin = '$pin'";
 $result = $conn->query($sql);

 if ($result->num_rows > 0) {
 // output data of each row
 while($row = $result->fetch_assoc()) {
    echo "Activity: " . $row['$day']. "<br>" ;
 }
 } else {
 echo "0 results";
 }
 $conn->close();



 }

 ?>

1 个答案:

答案 0 :(得分:0)

变量不会在single-quoted strings中展开。所以当你这样做时:

$row['$day']

你真的在寻找名为&#34; $ day&#34;的专栏,该专栏并不存在。你可以这样做:

$row["$day"]

哪会扩展变量。但这并不是必需的。变量本身就是您要使用的字符串,因此只需将其用作原样:

$row[$day]