Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用从mysql查询接收的布尔值更新值_Php_Mysql - Fatal编程技术网

Php 使用从mysql查询接收的布尔值更新值

Php 使用从mysql查询接收的布尔值更新值,php,mysql,Php,Mysql,我需要一些帮助,在一个小MySQL数据库的字段中切换布尔值。我创建了一个index.php,显示姓名和状态字段(Present/Away)。为此,我使用布尔值。该值可单击,这将切换布尔值。以下是相关代码: $id=$_GET['id']; $qresult = mysqli_query($con,"SELECT Present FROM personnel WHERE Inlogcode='$id'"); $result=mysql_fetch_array($qresult); $prese

我需要一些帮助,在一个小MySQL数据库的字段中切换布尔值。我创建了一个index.php,显示姓名和状态字段(Present/Away)。为此,我使用布尔值。该值可单击,这将切换布尔值。以下是相关代码:

$id=$_GET['id'];

$qresult = mysqli_query($con,"SELECT Present FROM personnel WHERE Inlogcode='$id'");

$result=mysql_fetch_array($qresult);
$presence = (bool)$result;

echo "ID is: " .$id . "<BR>";
echo "Boolean res is: " . $presence . "<BR>";

if ($presence)
{
    $sql="UPDATE personnel SET Present=True WHERE Inlogcode='$id'";
    $resultaat=mysql_query($sql);
}
    else
{
    $sql="UPDATE personnel SET Present=False WHERE Inlogcode='$id'";
    $resultaat=mysql_query($sql);
}
$id=$\u GET['id'];
$qresult=mysqli_query($con,“从人员中选择Present,其中Inlogcode='$id');
$result=mysql\u fetch\u数组($qresult);
$presence=(bool)$result;
echo“ID是:”.$ID。“
”; echo“Boolean res is:”$在场。“
”; 如果($在场) { $sql=“UPDATE Personal SET Present=True,其中Inlogcode='$id'; $resultaat=mysql\u查询($sql); } 其他的 { $sql=“UPDATE Personal SET Present=False,其中Inlogcode='$id'; $resultaat=mysql\u查询($sql); }
我无法找到如何将查询结果转换回真正的布尔值,以便在PHP脚本的其余部分中使用。添加mysql_fetch_数组似乎没有必要,但我似乎丢失了布尔值,因为我总是得到所有的零或一。测试数据库当然包含这两个值。

试试看

$presence = $result==1?true:false;
试一试


您可以通过一个查询切换布尔值

'UPDATE personnel SET Present = IF (Present, 0, 1) WHERE Inlogcode="'.$id.'"'

注意字符串和变量之间的“.”。您在代码中没有正确执行此操作。

您可以通过一个查询切换布尔值

'UPDATE personnel SET Present = IF (Present, 0, 1) WHERE Inlogcode="'.$id.'"'

注意字符串和变量之间的“.”。您在代码中没有正确执行此操作。

您可以通过单个查询执行更新:

UPDATE personnel SET Present = 1 - Present WHERE Inlogcode=?

考虑使用PDO和准备好的语句。您当前的查询易受SQL注入攻击

您可以通过单个查询执行更新:

UPDATE personnel SET Present = 1 - Present WHERE Inlogcode=?

考虑使用PDO和准备好的语句。您当前的查询易受SQL注入攻击

如果IF不起作用,则无需使用IFT。但这是我第一次尝试并发现有效的解决方案。如果没有IF,没有必要使用IF。但这是我第一次尝试并发现有效的解决方案。这是一个简单的美。我最喜欢的。这是一个简单的美。我最喜欢的。