Stu*_*old -2 php mysql variables function
我试图从函数中调用 $row (数据库数组),但根据变量调用列名。
这是完整的代码...您可以在以下位置查看结果
http://tlcs.stuart-pinfold.co.uk/test.php?id=20
和
http://tlcs.stuart-pinfold.co.uk/test.php?id=21
<?php
include("includes/db.php"); // includes all the db connections
$id = $_GET['id'];
$sql = "SELECT * FROM users WHERE UserID='".$id."'";
$set = mysql_query($sql);
$row = mysql_fetch_array($set);
function checkAvailability($day)
{
$check = "UserCommute".$day;
if($row[$check]=="1")
{
echo '<img src="/tick.jpg" alt="Available on this day" />';
}
else
{
echo '<img src="/cross.jpg" alt="Not available on this day" />';
}
echo " = ".$check."<br/>";
}
echo "Full Name:<br/>".$row['UserFullName']; // this works perfectly
echo "<br/><br/>Using the function...<br/>";
echo checkAvailability('Mon');
echo checkAvailability('Tue');
echo checkAvailability('Wed');
echo checkAvailability('Thu');
echo checkAvailability('Fri');
echo checkAvailability('Sat');
echo checkAvailability('Sun'); // these always return a cross even when the database entry is 1
echo "<br/>Using hard-coded row values...<br/>";
echo $row['UserCommuteMon']." = UserCommuteMon<br/>";
echo $row['UserCommuteTue']." = UserCommuteTue<br/>";
echo $row['UserCommuteWed']." = UserCommuteWed<br/>";
echo $row['UserCommuteThu']." = UserCommuteThu<br/>";
echo $row['UserCommuteFri']." = UserCommuteFri<br/>";
echo $row['UserCommuteSat']." = UserCommuteSat<br/>";
echo $row['UserCommuteSun']." = UserCommuteSun<br/>"; // these work perfectly, returning 0s or 1s, matching the database
?>
Run Code Online (Sandbox Code Playgroud)
它只返回十字架,从不滴答。
我哪里错了?
您正在定义一个函数,该函数内部没有$row.
要么在那里定义一个新查询,以检查用户在给定日期是否有空,要么删除该功能并比较没有该功能的字段。
所以不要做checkAvailability('Mon');:
if($row["UserCommuteMon"] === 1) {
}
Run Code Online (Sandbox Code Playgroud)
或给$row你的功能。喜欢checkAvailability($row, 'Mon');
并记得清理你的$_GET['id']以防止 SQL 注入。
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |