2009-02-27 5 views
0
if(isset($_REQUEST['SAVE'])) { 
    $sql = "SELECT SecName FROM section WHERE SecID='$section'"; 
    $result = mysql_query($sql); 
    while ($row = mysql_fetch_assoc($result)){ 
     $SecName = $row["SecName"]; 
    } 
    $sql = "SELECT SubjName FROM subject WHERE SubjID='$subject'"; 
    $result = mysql_query($sql); 
    while ($row = mysql_fetch_assoc($result)){ 
     $SubjName = $row["SubjName"]; 
    } 

    $check = mysql_query("SELECT SecID FROM service where SubjID='$SubjName'")or die(mysql_error()); 
    $bool = 1; 
    while($info = mysql_fetch_array($check)) 
     if(($info['SecID'] == $SecName)){ 
      $bool = 0; 
     } 
    if($bool){ 

     $check = mysql_query("SELECT * FROM service ")or die(mysql_error()); 
     $bool = 1; 
     while($info = mysql_fetch_array($check)) 
      if(($info['Start_date'] == $Start_date) && ($info['Venue'] == $Venue) || ($info['Start_date'] == $Start_date) && ($info['Facilitator'] == $Facilitator)){ 
       $bool = 0; 
      } 
     if($bool){ 

      $sql="INSERT INTO service (ServiceID, Date, Semester, School_year, Start_date, Venue, Facilitator, Stype, SecID, SubjID)VALUES('$RecCode','$Date','$Semester','$School_year','$Start_date','$Venue','$Facilitator','$Stype', '$SecName', '$SubjName')"; 



      if (!mysql_query($sql,$con)) 
       { 
        die('Error: ' . mysql_error()); 
       } 
      echo '<script type="text/javascript">'; 
      echo 'alert("Save Successfully!");'; 
      echo 'window.location="Admin_RecSchedMapLst.php";'; 
      echo '</script>'; 
      mysql_close($con); 
     }else 
      {  
       echo '<script type="text/javascript">'; 
       echo 'alert("Conflicting schedule for Venue or Facilitator!");'; 
       echo '</script>'; 
      }      
    }else 
     { 
      echo '<script type="text/javascript">'; 
      echo 'alert("The SECTION has been already scheduled!");'; 
      echo '</script>'; 
     }     
}     

/* $result = mysql_query("SELECT SIDno FROM class WHERE SecID=$SecID AND SubjID=$SubjID"); 
$row = mysql_fetch_assoc($result); 
$SIDno = $row['SIDno']; 
$result = mysql_query("SELECT ServiceID FROM service WHERE SecID=$SecID AND SubjID=$SubjID"); 
$row = mysql_fetch_assoc($result); 
$ServiceID = $row['ServiceID']; 
$sql="INSERT INTO registered (ServiceID, IDno, Stype)VALUES('$ServiceID','$SIDno','$Stype')"; */       

} 

ce code fonctionne correctement. Je veux juste demander comment puis-je travailler sur le code qui est commenté ci-dessus. tout ce que je veux faire est quand le serviceid est inséré je veux également insérer immédiatement le serviceID, idno, le type à une autre table qui est enregistrée.l'insertion de valeurs supplémentaires immédiatement après une insertion réussie en utilisant PHP + MySQL

+0

Merci d'avoir nettoyé les onglets. –

Répondre

1

exécuter une autre commande SQL INSERT après la première, comme:

$sql="INSERT INTO service (ServiceID, Date, Semester, School_year, Start_date, Venue, Facilitator, Stype, SecID, SubjID) VALUES ('$RecCode','$Date','$Semester','$School_year','$Start_date','$Venue','$Facilitator','$Stype', '$SecName', '$SubjName')"; 

if (!mysql_query($sql,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 
else 
{ 
    /*Begin your SELECT and INSERT code*/ 
    $result = mysql_query("SELECT SIDno FROM class WHERE SecID=$SecID AND SubjID=$SubjID"); 
    $row = mysql_fetch_assoc($result); 
    $SIDno = $row['SIDno']; 
    $result = mysql_query("SELECT ServiceID FROM service WHERE SecID=$SecID AND SubjID=$SubjID"); 
    $row = mysql_fetch_assoc($result); 
    $ServiceID = $row['ServiceID']; 
    $sql2 = "INSERT INTO registered (ServiceID, IDno, Stype)VALUES('$ServiceID','$SIDno','$Stype')"; 
    /*End your SELECT and INSERT code*/      

    if(!mysql_query($sql2,$con)) 
    { 
     die('Error: ' . mysql_error()); 
    } 
} 
+0

tout comme le code commenté ci-dessus? –

+0

Oh, je comprends ... ouais en gros. Mettez-le juste après le premier INSERT. –

+0

... et exécutez-le comme mon exemple. –

2

Il est beaucoup plus facile et mieux utiliser la fonction mysql_insert_id pour obtenir l'ID de la ligne que vous venez d'insérer, plutôt que de faire une autre instruction SELECT. .: par exemple

$sql="INSERT INTO service (ServiceID, Date, Semester, School_year, Start_date, Venue, Facilitator, Stype, SecID, SubjID) VALUES ('$RecCode','$Date','$Semester','$School_year','$Start_date','$Venue','$Facilitator','$Stype', '$SecName', '$SubjName')"; 

if (mysql_query($sql,$con)) { 
    $ServiceID = mysql_insert_id(); 
    $sql="INSERT INTO registered (ServiceID, IDno, Stype)VALUES('$ServiceID','$SIDno','$Stype')";   
    mysl_query($sql, $con); // check for error here too though 
} 
else { 
    echo "OH NO!!!"; 
} 

Aussi, méfiez-vous de SQL injection avec la façon dont vous construisez vos chaînes SQL.

+0

Il n'a pas besoin de faire ça. Il vient d'insérer le nouveau ServiceID en $ RecCode. Certes, il vaut la peine de le mentionner, mais je pense qu'il cherche un ServiceID différent de celui qu'il vient d'insérer (ou je suis juste très confus)? –

+0

Je peux être confus aussi, et incertain pour démarrer, mais je ne suis pas sûr ... – Nathan

+0

le même serviceId sera inséré mais l'IDno est nécessaire pour être sélectionné aussi à partir d'une autre table nommée class. et obtenir tous les idno là et l'insérer dans une autre table nommée registered, y compris le serviceid –

Questions connexes