2010-03-21 5 views
-1

gars hai ... i .VE le problème que je ne peux pas être récupéré encore ... j'ai un formulaire où l'administrateur a besoin d'approuver ou de rejeter la demande de réservation ... i ai défini le champ b_status dans l'utilisation de la table IN PROCESS valeur par défaut ... je veux mettre à jour la valeur b_status RÉSERVATION APPROUVÉE lorsque l'utilisateur clique sur le bouton APPROVE .. sinon, le b_status mettra à jour la valeur comme RÉSERVATION REJETÉE lorsque l'utilisateur clique sur le bouton REJETERerreur de mise à jour d'état (champ null)

voici le code du formulaire:

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

ce qui est le code de la page de processus:

<?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 le problème sur le terrain de b_status .. gars plz ... me aider ya :-)

Répondre

1

Vous n'êtes pas vérifier pour voir si les requêtes ont effectivement réussi. Remplacez votre code par le code suivant:

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

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

Si la vérification des erreurs était correcte, la requête INSERT serait mal formée. Il doit être rédigé comme suit:

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

Ne présumez jamais jamais qu'une requête réussira, et vérifiez TOUJOURS TOUJOURS mysql_error() après un appel mysql_query(). Même si la requête elle-même est syntaxiquement correcte, elle peut échouer pour un certain nombre d'autres raisons.

+0

merci marc.j'ai changé la déclaration ,, mais il semble contenir erreur .. quand je veux approuvé une réservation, les données peuvent être sauvegardées..mais quand je veux enregistrer d'autres données, le sql dit que Il y avait des clés en double ... ce qui ne va pas avec l'instruction – user273551

+0

Juste cela, vous insérez un enregistrement avec une clé primaire qui existe déjà dans la table. Vous ne fournissez pas vos définitions de table, mais je suppose que 'bookingno' est probablement la clé primaire, et vous essayez de créer un second enregistrement avec la même réservation –

Questions connexes