Поэтому я хотел бы обновить строку только при выполнении нескольких условий.
$val = mysqli_real_escape_string($conn,$_POST['$result']);
$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);
}
Мой код работает нормально, когда я хочу вставить новые данные. Но когда я хочу обновить, обновляется каждый раз, даже когда $ _POST ['$ val'] меньше, чем существующий подряд ... любая помощь подойдет ?!
<?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();
Можете ли вы показать весь свой (соответствующий) код в одном блоке?
у вас есть проблема с $ row ['done'] ... iv проверьте, чтобы обновить значение, когда данные в этой строке меньше 100, но всегда обновляйте его ...
Вы никогда не присваиваете значение $row['done']. Возможно нужен $row = mysqli_fetch_assoc($result)?






Вы либо не опубликовали полный код, либо ваш 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;
}
....
Да, именно так: D это было так очевидно, но я забыл добавить это в свой код ... Большое спасибо за то, что указали на это.
Откуда это с
$row['done']?