2013-05-26 76 views
0

我想檢查並比較我的輸入表單上的信息與存儲在我的數據庫中的信息。 基本上。如果培訓師,sessionslot eventdate是相同的dbtrainer,dbeventdate dbsessionslot ECHO「Booked」; 否則插入預訂表預訂系統。檢查現有數據

我對編程知之甚少,真的可以在這個幫助下做些什麼。

這是我正在使用的代碼片段。

if(isset($_GET['add'])){ 
    $trainee = $_POST['txttrainer']; 
    $trainer = $_POST['txttrainee']; 
    $sessionSlot = $_POST['txtsession']; 


    $eventdate = $month."/".$day."/".$year; 
    $query = mysql_query("SELECT * FROM BOOKING WHERE trainer='$trainer' AND SessionSlot='$sessionslot"); 


    $sqlinsert = "insert into booking (Trainee,Trainer,sessionSlot,eventDate,dateAdded) values ('".$trainee."','".$trainer."','".$sessionSlot."','".$eventdate."',now())"; 
    $resultinsert = mysql_query($sqlinsert); 

      $numrows = mysql_num_rows($query); 
      if($numrows == 1) { 
       echo "this timeslot is booked" 
       if($resultinsert){ 
        echo "Booking Successful...."; 
       }else{ 
        echo "Booking Failed"; 
       } 
      } 
} 
+0

那麼你收到了什麼錯誤? – James

回答

0

如果您致電mysql_query,則會執行查詢。因此,在您檢查SELECT是否返回一行之前,您正在執行INSERT

這意味着您應該將INSERT部分放入if($numrows != 1)條件中。

請注意,使用mysql_query已棄用:http://ch1.php.net/manual/en/function.mysql-query.php,您應該使用MySQLi或PDO_MySQL。您的代碼容易受到SQL注入的影響。

1
if(isset($_GET['add'])){ 
    $trainee = $_POST['txttrainer']; 
    $trainer = $_POST['txttrainee']; 
    $sessionSlot = $_POST['txtsession']; 


    $eventdate = $month."/".$day."/".$year; 
    $query = mysql_query("SELECT * FROM BOOKING WHERE trainer='$trainer' AND SessionSlot='$sessionslot"); 


    $sqlinsert = "insert into booking (Trainee,Trainer,sessionSlot,eventDate,dateAdded) values ('".$trainee."','".$trainer."','".$sessionSlot."','".$eventdate."',now())"; 


      $numrows = mysql_num_rows($query); 
      if($numrows >0) { 
       echo "this timeslot is booked" 
      }else{ 
       $resultinsert = mysql_query($sqlinsert); 
       if(mysql_error()==""){ 
        echo 'time slot booked'; 
       }else{ 
        echo 'error'; 
       } 
      } 
    } 

說明:

如果有選擇的行,時隙被黃牌警告,否則執行查詢。如果查詢沒有錯誤,則打印出成功。