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')"; */       

} 

dieser Code funktioniert ordnungsgemäß ,. Ich möchte nur fragen, wie kann ich möglicherweise an dem Code arbeiten, der oben kommentiert ist. alles, was ich tun möchte, ist, wenn die serviceid eingefügt wird, ich möchte auch sofort die serviceID, IDNO, Typ in eine andere Tabelle, die registriert ist.Einfügen von zusätzlichen Werten unmittelbar nach einem erfolgreichen Einfügen mit PHP + MySQL

+0

Vielen Dank für die Reinigung der Registerkarten. –

Antwort

1

anderen SQL-Befehl INSERT ausführen nach dem ersten, wie:

$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

genau wie der Code, der oben kommentiert ist? –

+0

Oh, ich verstehe ... im Grunde. Einfach nach dem ersten EINFÜGEN setzen. –

+0

... und führe es wie mein Beispiel aus. –

2

Es ist viel einfacher und besser, die mysql_insert_id Funktion zu verwenden, um die ID der Zeile, die Sie gerade eingefügt zu erhalten, anstatt eine andere SELECT zu tun. Z.B .:

$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!!!"; 
} 

Auch passen sie von SQL injection mit der Art und Weise sind Sie Ihre SQL-Strings zu bauen.

+0

Das muss er eigentlich nicht machen. Er hat gerade die neue ServiceID als $ RecCode eingefügt. Sicherlich erwähnenswert, aber ich denke, er sucht nach einer anderen ServiceID als die, die er gerade eingefügt hat (oder ich bin nur sehr verwirrt)? –

+0

Ich kann auch verwirrt sein, und unsicher zu booten, aber ich bin mir nicht sicher ... – Nathan

+0

die gleiche serviceId wird eingefügt, aber die IDno muss auch aus einer anderen Tabelle namens class ausgewählt werden. und holen Sie alle Idno dort und fügen Sie es in eine andere Tabelle namens registriert einschließlich der Service-ID –