2010-03-21 62 views
-1

海傢伙... 我有問題,我無法恢復... 我有一個表單,管理員需要批准或拒絕預訂請求... 我已經設置了表格用法IN PROCESS默認值中的b_status字段... 我想在用戶單擊APPROVE按鈕時更新b_status值BOOKING APPROVED .. 否則,b_status將更新值爲BOOKING REJECTED,當用戶單擊拒絕按鈕狀態更新錯誤(空字段)

這裏是表單代碼:

<?php 
    $db = mysql_connect('localhost','root') 
    or die ("unable to connect"); 
    mysql_select_db('fyp',$db) or die ("able to select"); 

    $sql="SELECT * FROM vehicle WHERE v_status='READY'"; 

    $result = mysql_query($sql) or die ("Query failed!"); 
?> 
<tr><td>&nbsp;</td></tr> 
    <tr> 
    <tr> 
    <td width="200"><font face="Arial" size="2" font color="#000000">Registration Number </font></td> 
    <td><select name="regno"> 
      <option value="" selected>--Registration No--</option> 
      <?php while($row = mysql_fetch_array($result)){?> 
      <option value="<?php echo $row['regno']; ?>"><?php echo $row['regno']; ?></option> 
      <?php } ?> 
     </select></td> 
    <td><font face="Arial" size="2" font color="#000000">Reason</font></td> 
    <td><textarea name="reason" rows="3" cols="50 "value = ""></textarea></td> 
    </tr> 
    <?php 
    $db = mysql_connect('localhost','root') 
    or die ("unable to connect"); 
    mysql_select_db('fyp',$db) or die ("able to select"); 

    $sql="SELECT * FROM driver WHERE d_status='READY'"; 

    $result = mysql_query($sql) or die ("Query failed!"); 
?> 
    <tr> 
    <td><font face="Arial" size="2" font color="#000000">Driver</font></td> 
    <td><select id = "d_name" name="d_name"> 
     <option value="" selected>--Driver Name--</option> 
     <?php while($row = mysql_fetch_array($result)){?> 
     <option value="<?php echo $row['d_name']; ?>"><?php echo $row['d_name']; ?></option> 
     <?php } ?> 
    </select></td> 
    </tr> 
    <tr> 
<?php      
     mysql_close($db); 
?> 

</table> 
<p></p> 

<center><input name="APPROVED" type="submit" id="APPROVED" value="APPROVED"> 
<input name="REJECT" type="submit" id="REJECT" value="REJECT"> </center> 

     </div> 
    </center> 

這就是過程頁面代碼:

<?php 
    $db = mysql_connect('localhost','root') 
    or die ("unable to connect"); 
    mysql_select_db('fyp',$db) 
    or die ("able to select"); 

    $bookingno=mysql_real_escape_string($_POST['bookingno']); 
    $username=mysql_real_escape_string($_POST['username']); 
    $name=mysql_real_escape_string($_POST['name']); 
    $department=mysql_real_escape_string($_POST['department']); 
    $g_date=mysql_real_escape_string($_POST['g_date']); 
    $g_time=mysql_real_escape_string($_POST['g_time']); 
    $r_date=mysql_real_escape_string($_POST['r_date']); 
    $r_time=mysql_real_escape_string($_POST['r_time']); 
    $destination=mysql_real_escape_string($_POST['destination']); 
    $pass_num=mysql_real_escape_string($_POST['pass_num']); 
    $trip_purpose=mysql_real_escape_string($_POST['trip_purpose']); 
    $regno=mysql_real_escape_string($_POST['regno']); 
    $d_name=mysql_real_escape_string($_POST['d_name']); 
    $reason=mysql_real_escape_string($_POST['reason']); 
    $b_status=mysql_real_escape_string($_POST['b_status']); 


$sql = "INSERT INTO `usage` VALUES('$bookingno','$username','$name','$department','$g_date','$g_time','$r_date','$r_time','$destination', '$pass_num','$trip_purpose','$regno','$d_name','$reason','$b_status')"; 

       $query = "INSERT INTO `usage` VALUES b_status ='BOOKING APPROVED'"; 
       $result = @mysql_query($query); 

       $query1 = "UPDATE driver SET d_status ='OUT' WHERE '$d_name'=d_name"; 
       $result1 = @mysql_query($query1); 

if(isset($_POST['APPROVED'])) 
     { 

      $query2 = "UPDATE `usage` SET b_status ='BOOKING APPROVED' WHERE '$b_status'='IN PROCESS'"; 
       $result2 = @mysql_query($query2); 

     } 


if (isset($_POST['REJECT'])) 
     { 

      $query3 = "UPDATE `usage` SET b_status ='BOOKING REJECTED' WHERE '$b_status'='IN PROCESS'"; 
       $result3 = @mysql_query($query3); 

     } 



//$result = mysql_query($sql) or die ("error!"); 
$result = mysql_query($sql) or trigger_error (mysql_error().' in '.$sql); 

i.ve在b_status領域的問題.. PLZ傢伙... 幫我雅:-)

回答

1

你不檢查查看查詢是否成功。更改您的代碼如下:

$query = "INSERT INTO `usage` VALUES b_status ='BOOKING APPROVED'"; 
$result = @mysql_query($query); 

if (mysql_error()) { 
    die("Database error: " . mysql_error()); 
} 

如果您有適當的錯誤檢查,您會看到您的INSERT查詢格式不正確。應該寫成如下:

INSERT INTO `usage` (b_status) VALUES ('BOOKING APPROVED'); 

永遠不要假設查詢會成功,並且請求mysql_query()調用之後,一定要經常檢查mysql_error()。即使查詢本身在語法上是正確的,它也可能因任何其他原因而失敗。

+0

thanks marc ..我改變了陳述,但它似乎包含錯誤..當我想批准預訂時,數據可以保存..但是當我想保存另一個數據時,sql說:有重複的鍵..waht錯誤的語句 – user273551 2010-03-22 09:35:57

+0

就是這樣,你插入一個記錄與表中已經存在的主鍵。你不提供你的表格定義,但我猜''no''最有可能是主鍵,而你正試圖用同一個預訂創建另一個記錄no – 2010-03-22 14:59:31