2016-11-11 4 views
0

ループ内でif文を作成します。PHP MySQLでループ中にネストされた文を実行するには?

そして問題は、この

Time added ! Duplicate Time added 

そして、まだ第一及び第三行に追加されたデータのような出力ショーです

row 1 : **timeout 0830 , timein 1030** 

row 2 : **timeout 1230 , timein 1300** 

row 3 : **timeout 1400 , timein 1730** 

以下のように私は、テーブル内のデータの3つの行を持っています。どうしてか分かりません。

私は、行のいずれかがデータを追加せずに重複している場合にエラーを表示します。 1ので、任意のデータを追加することはありません

重複

そして、第一及び第二行目:

レッツはI 1230と1300は、私のように出力を表示したいです2行目の入力データを言います行は重複しています。

<?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> 
+0

まさに「複製」の定義は何ですか? _any_ "duplicates"があれば、あなたはレコードを挿入したくないと言っていますか? –

+0

フラグ変数を使用します。重複がある場合はそれを切り替え、行をループした後にフラグ変数をチェックし、それに応じてdbにデータを挿入します。 –

+0

はい。条件が「重複している」場合は、データを追加したくありません。 。入力時間が同じか、時間範囲内にあるため – Jamilah

答えて

0

timeouttimeinデータベースレベルでの比較ではなく、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); 
    } 
?> 
+0

ありがとうございます。私はあなたの提案を試みます。私は後であなたに知らせるでしょう:)。 – Jamilah

+0

ようこそ。私たちはそれを機能させることができます。あなたがこれを試みるときに結果を教えてください。感謝! –

+0

!それは魅力のように働く – Jamilah

関連する問題