Ajax更新,比较并将数据插入到MySQL。

3

你好, 如标题所述,我正在创建一个ajax函数,在此函数中,php将直接更新状态,然后如果状态为1(或批准),它将在tblcompany和tblinternapplication两个表之间进行比较,并在公司列表中没有该公司的情况下插入新公司。 我试图逐一测试它,功能良好,但在合并它们后,即使在tblinternapplication中更新状态,当人员申请获得批准(或设置为1)时也不会添加任何新公司。 下面是我的代码。

 <?php require_once("../includes/session.php"); ?>
 <?php require_once("sessioncourse.php"); ?>
 <?php confirm_logged_in(); ?>
 <?php require_once("../includes/connection.php") ?>
 <?php require_once("../includes/functions.php") ?>

 <?php

 $id = $_GET['id'];
 $status =$_GET['status'];

 $sql="UPDATE tblinternapplication set status_approval  =     
 ".mysql_real_escape_string($status) ." WHERE id = " .mysql_real_escape_string($id);
 $result = mysql_query($sql);

 $querysel = "SELECT i.company_code, c.company_name as cn, i.company_name as ic, 
               c.company_branch as cb, i.company_branch as ib, FROM tblcompany c, 
               tblinternapplication i WHERE i.id = '$id' ";
 $resultsel = mysql_query($querysel, $connection);
 $queryselc = "SELECT 
    company_name, company_branch,
    company_address, post_code,
    company_city, company_state,
    company_country,
    company_phone, company_fax,
    company_url FROM tblinternapplication WHERE id = '$id' ";
 $resultselc = mysql_query($queryselc, $connection);

 if ($status == 1){
  while($rowsel = mysql_fetch_array($resultsel)){
   if($rowsel['company_code'] == NULL){
    if(($rowsel['cn'] != $rowsel['ic']) OR ($rowsel['ib'] != $rowsel['cb'])){
    while($rowselc = mysql_fetch_array($resultselc)){
      $query = "INSERT INTO tblcompany (
      company_name, company_branch,
      company_address, post_code,
      company_city, company_state, company_country, 
      company_phone, company_fax,
      company_url
  ) VALUES (
  '{$rowselc['company_name']}', '{$rowselc['company_branch']}',
      '{$rowselc['company_address']}','{$rowselc['post_code']}',
      '{$rowselc['company_city']}','{$rowselc['company_state']}',
      '{$rowselc['company_country']}',
      '{$rowselc['company_phone']}','{$rowselc['company_fax']}',
      '{$rowselc['company_url']}'
  )";
  $resultc = mysql_query($query, $connection); 
    }
   }
  }
}
}

?>

那么,Ajax代码在哪里? - samayo
我没有发布 AJAX 代码,因为那段代码没有出现任何问题。 - user2359110
你不需要在文件开头打开和关闭php标签,只需打开一次即可。 - kelunik
好的,我知道了,但是我加上 PHP 标签是为了使所有其他页面标准化。 - user2359110
1个回答

0

分享一下我自己的解决方法。基本上,我移除了两层嵌套的 while 循环,并使第一个查询行匹配,然后第二个查询是搜索结果。希望这能帮助其他人。

<?php

$id = $_GET['id'];
$status = $_GET['status'];

$sql="UPDATE tblinternapplication set status_approval  = 
".mysql_real_escape_string($status) ." WHERE id = " .mysql_real_escape_string($id);
$result = mysql_query($sql);

$querysel = "SELECT i.company_code, i.company_name, i.company_branch, c.company_name,   
c.company_branch FROM tblinternapplication i, tblcompany c WHERE i.company_name = 
c.company_name AND i.company_branch = c.company_branch AND i.id = '$id' ";
$resultsel = mysql_query($querysel, $connection);

$queryselc = "SELECT * FROM tblinternapplication where id = '$id'";
$resultselc = mysql_query($queryselc, $connection);

if ($status == 1){
if(mysql_num_rows($resultsel) == 0){
    while($rowselc = mysql_fetch_array($resultselc)){
$query = "INSERT INTO tblcompany (
    company_name, company_branch,
    company_address, post_code,
    company_city, company_state, company_country, 
    company_phone, company_fax,
    company_url
) VALUES (
'{$rowselc['company_name']}', '{$rowselc['company_branch']}',
    '{$rowselc['company_address']}','{$rowselc['post_code']}',
    '{$rowselc['company_city']}','{$rowselc['company_state']}',
    '{$rowselc['company_country']}',
    '{$rowselc['company_phone']}','{$rowselc['company_fax']}',
    '{$rowselc['company_url']}'
)";
$resultc = mysql_query($query, $connection); 
    }
 }
}


?>

如果有人有推荐,请留言。谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接