2015-06-07 28 views
0

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

<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(); 



} 

?> 

回答

0

变量不single-quoted strings扩大。所以当你这样做时:

$row['$day'] 

你真的在寻找名为“$ day”的列,该列在行中不存在。你可以这样做:

$row["$day"] 

这将扩大变量。但它并不是真的有必要。该变量本身就是您想要使用的字符串,因此请将其用作它:

$row[$day] 
+0

谢谢!这工作。 – eazyduzit100

+0

$ sql =“SELECT $ day FROM profile WHERE userName ='$ userName'AND pin ='$ pin'”; $ result = $ conn-> query($ sql); ($ row = $ result-> fetch_assoc()){ echo“Activity:”时,每行输出数据 ( / )。 $行[ “$日”。 “
”; } } else { echo“0 results”; } $ conn-> close(); – eazyduzit100

+0

@ eazyduzit100:请注意,您的代码非常容易受到SQL注入攻击。您将要使用预处理语句进行调查,而不仅仅是将用户输入作为代码执行。 – David