[英]How to run nested statement inside while loop in PHP MySQL?
我在while循環內創建if語句。
我在表中有三行數據,如下所示
row 1 : **timeout 0830 , timein 1030**
row 2 : **timeout 1230 , timein 1300**
row 3 : **timeout 1400 , timein 1730**
問題是,輸出像這樣顯示
Time added ! Duplicate Time added
並且數據仍添加在第一行和第三行中。 我不知道為什么
我要顯示的錯誤是,如果其中任一行重復而未添加數據。
假設我輸入第二行的數據是1230和1300。我希望輸出顯示為:
重復
並且第一行和第二行不會添加任何數據,因為其中一行是重復的。
有什么辦法嗎?
<?php
$connect = mysqli_connect("localhost", "root", "", "movementandroid");
global $connect;
if(isset($_POST['Submit'])){
$user_id = $_POST['user_id'];
$timeout = $_POST['timeout'];
$timein = $_POST['timein'];
$sql = "SELECT * FROM table WHERE user_id='$user_id'";
$get = mysqli_query($connect, $sql);
if($get && mysqli_num_rows($get) > 0 ){
while($run2 = mysqli_fetch_assoc($get)){
$timeout_new = $run2['timeout'];
$timein_new = $run2['timein'];
if(($timeout >= $timeout_new) && ($timein <= $timein_new)){
echo "Duplicate !";
}
else{
$add = "INSERT INTO table (timeout, timein)
VALUES ('$timeout', '$timein')";
$addDateTime = mysqli_query($connect,$add);
echo "Time added !";
}
}
mysqli_free_result($get);
}
}
?>
<form action="dd.php" method="post">
<table>
<tr>
<td><i class="fa fa-unlock-alt"></i> </td>
<td>User ID : </td>
<td><input type ="text" name="user_id" size="30"></td>
</tr>
<tr>
<td><i class="fa fa-unlock-alt"></i> </td>
<td>Time out : </td>
<td><input type ="text" name="timeout" size="30"></td>
</tr>
<tr>
<td><i class="fa fa-unlock-alt"></i> </td>
<td>Time in : </td>
<td><input type ="text" name="timein" size="30"></td>
</tr>
</table>
<p><input class="btnSuccess" type ="submit" name="Submit" value="Submit"> </p>
</form>
嘗試做timeout
timein
在數據庫級別,而不是PHP比較。
將您的代碼更改為類似的代碼,以查看其是否有效:
<?php
$connect = mysqli_connect("localhost", "root", "", "movementandroid");
global $connect;
if (isset($_POST['Submit'])) {
$user_id = $_POST['user_id'];
$timeout = $_POST['timeout'];
$timein = $_POST['timein'];
$sql = "SELECT * FROM table WHERE user_id='{$user_id}' AND timeout >= {$timeout} AND timein <= {$timein}";
$get = mysqli_query($connect, $sql);
if($get && mysqli_num_rows($get) > 0 ){
echo "Duplicate !";
} else {
$add = "INSERT INTO table (timeout, timein)
VALUES ('{$timeout}', '{$timein}')";
$addDateTime = mysqli_query($connect, $add);
echo "Time added !";
}
mysqli_free_result($get);
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.