Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 SQL更新行,而行[val]_Php_Mysql - Fatal编程技术网

Php SQL更新行,而行[val]

Php SQL更新行,而行[val],php,mysql,Php,Mysql,所以我只想在满足少数条件时更新行 1.如果我已经有了特定行的值 所以,如果我已经有了那个值,我不需要插入新值,只需要更新值 2.如果保存的值小于POST值 当我想插入新数据时,我的代码工作正常。但当我想更新时,即使$_POST['$val']比一行中的现有值小,每次都会更新。。。有什么合适的帮助吗 完整代码 您可能没有发布完整的代码,或者您的php发出错误消息undefined index'done',因为您从未实际访问SELECT查询中的值 代码应该如下所示: <?php .... if

所以我只想在满足少数条件时更新行

1.如果我已经有了特定行的值 所以,如果我已经有了那个值,我不需要插入新值,只需要更新值

2.如果保存的值小于POST值 当我想插入新数据时,我的代码工作正常。但当我想更新时,即使$_POST['$val']比一行中的现有值小,每次都会更新。。。有什么合适的帮助吗

完整代码
您可能没有发布完整的代码,或者您的php发出错误消息undefined index'done',因为您从未实际访问SELECT查询中的值

代码应该如下所示:

<?php
....
if($resultCheck>0){
    while($row = mysqli_fetch_array($result)){ //Fetch data from the SELECT query
        if ($row['done']< $val) {
            $sql = "UPDATE user_video SET obejrzane='$val' WHERE video_id = '$id' AND user_uid='".$_SESSION['u_uid'] ."'";
                mysqli_query($conn, $sql);
        }
    }
    echo $resultCheck;
}
....

这是从$row['done']的哪里来的?您能在一个块中显示您的整个相关代码吗?您的$row['done']有一个问题。。。iv当该行中的数据小于100时,检查以更新值,但始终更新它…您从未将值分配给$row['done']。也许您需要$row=mysqli\u fetch\u assoc$result?是的,就是这样:D很明显,但我忘了将它添加到我的代码中。。。非常感谢你指出这一点。
if ($row['done']< $val) {
    $sql = "UPDATE user_video SET obejrzane='$val' WHERE video_id = '$id' AND user_uid='".$_SESSION['u_uid'] ."'";
    mysqli_query($conn, $sql);
}
<?php
session_start();
include 'db.php';
$val = mysqli_real_escape_string($conn,$_POST['$result']);
$time = mysqli_real_escape_string($conn,date("Y-m-d H:i:s"));
$id = mysqli_real_escape_string($conn,$_POST['$title']);

$sql = "SELECT * FROM user_video WHERE video_id = '$id' AND user_uid = '".$_SESSION['u_uid'] ."'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if($resultCheck>0){
    if ($row['done']< $val) {
        $sql = "UPDATE user_video SET obejrzane='$val' WHERE video_id = '$id' AND user_uid='".$_SESSION['u_uid'] ."'";
        mysqli_query($conn, $sql);
    }
    echo $resultCheck;
}
else{
    if (!empty($val)) { 
        $sql = "INSERT INTO user_video (user_uid, video_id, done, created) VALUES ('".$_SESSION['u_uid'] ."', '$id', '$val', '$time');";
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } 
        else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }
    }
}
$conn->close();
<?php
....
if($resultCheck>0){
    while($row = mysqli_fetch_array($result)){ //Fetch data from the SELECT query
        if ($row['done']< $val) {
            $sql = "UPDATE user_video SET obejrzane='$val' WHERE video_id = '$id' AND user_uid='".$_SESSION['u_uid'] ."'";
                mysqli_query($conn, $sql);
        }
    }
    echo $resultCheck;
}
....