PHP Mysql语句 - 多个语句

时间:2011-10-13 10:29:06

标签: php mysql insert

我有一个显示mysql查询结果的PHP页面。为每个返回的记录分配一个复选框,其值等于行ID列。

将mysql语句插入到新表中。

我想添加第二个mysql查询,用于更新所选ID匹配的另一个表的状态。查询如下:

  

UPDATE despgoods_alldetails,loaddetails SET   despgoods_alldetails.locstatus ='LoadCreated'WHERE   despgoods_alldetails.despgoodsid = $ val

当前有效的PHP代码页面(我知道一些不正确的代码):

> <?php
>     mysql_connect("localhost", "hulamin_hulamin", "Hulamin2011")or die("cannot connect");    
>     mysql_select_db("hulamin_loc")or die("cannot select DB");
>     $sql="SELECT `despgoodsid`,`crtd dept`,`customer`,`loc cust rel`,`case no`,`gross mass`,`case width`,`case length` from
> despgoods_alldetails where transporttypename= 'localpmb' and
> locstatus='unplanned' and customer <> 'customer'";
>     $result=mysql_query($sql);
>     $count=mysql_num_rows($result);   putenv("TZ=Africa/Johannesburg");   ?> <table border=0>
>     <tr>
>         <td>
>             <form name="form1" method="post">
>                 <table border=0
>                     <tr>
>                         <th>&nbsp;</th>
>                         <th width=150>Dispatch Area</th>                      
>                         <th width=150>Customer</th>  
>                       <th width=150><center>Release Number</th>
>                       <th width=130><center>Case Number</th>
>                       <th width=80><center>Weight</th> 
>                       <th width=80><center>Width</th> 
>                       <th width=80><center>Length</th> 
>                   </tr> <?php
>     while($rows=mysql_fetch_array($result)){ ?>
>                     <tr>
>                         <td><input type="checkbox" name=check[]  value="<?php echo $rows['despgoodsid']; ?>"></td>
>                         <td><?php echo $rows['crtd dept']; ?></td>
>                         <td><?php echo $rows['customer']; ?></td>
>                       <td><center><?php echo $rows['loc cust rel']; ?></td>
>                         <td><center><?php echo $rows['case no']; ?></td>
>                         <td><center><?php echo $rows['gross mass']; ?></td>
>                       <td><center><?php echo $rows['case width']; ?></td>
>                       <td><center><?php echo $rows['case length']; ?></td>
>                       
>                     </tr>                                   
> 
> <?php
>     } ?>
>                     <tr>
>                         <td colspan=3><input name="Next" type="submit" id="Next" value="Next"></td>
>                     </tr>
>                     <?php
>                     
>                     
>                             
>                             $check=$_POST['check'];
>                             
>                         if($_REQUEST['Next']=='Next'){  {
>                             $sql="INSERT INTO loaddetails (despgoodsid,dispatcharea,Customer, casenumber, weight, loadstatus) 
>                           SELECT `despgoodsid`,`crtd dept`,Customer,`case no`,`gross mass`,'loadplanned'
>                           FROM despgoods_alldetails WHERE `despgoodsid` = '$val'";
>                             
>                             foreach($check as $key=>$value)
>                             {
>                             $sql="INSERT INTO loaddetails (despgoodsid,dispatcharea,Customer, casenumber, weight, loadstatus)
>                           SELECT `despgoodsid`,`crtd dept`,Customer,`case no`,`gross mass`,'loadplanned'
>                           FROM despgoods_alldetails WHERE `despgoodsid` = '$value'";
>                             $final=mysql_query($sql);
>                             if($final)
>                             {
>                             echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.hulaminloc.co.za/planningplatform/planlocalpmbstep2.php\">";
>                             }                                            } 
>                                 }
>                                 }
>                    mysql_close(); ?> </table> </form> </td> </tr> </table>

除了每个选定行的select语句外,如何添加我要运行的update语句?

感谢任何帮助。

谢谢和问候, 莱恩史密斯

2 个答案:

答案 0 :(得分:1)

你可以创建一个触发器,当数据保存在辅助表中时会触发;如果您认为这可能是您需要的,请查看mysql手册中的触发器

答案 1 :(得分:0)

我虽然会在这里发布完整的工作代码。非常感谢@mishu的所有帮助和耐心。

<?php
    mysql_connect("localhost", "user", "password")or die("cannot connect");    
    mysql_select_db("database")or die("cannot select DB");
    $sql="SELECT `despgoodsid`,`crtd dept`,`customer`,`loc cust rel`,`case no`,`gross mass`,`case width`,`case length` from despgoods_alldetails where transporttypename= 'localpmb' and locstatus='unplanned' and customer <> 'customer'";
    $result=mysql_query($sql);
    $count=mysql_num_rows($result);
    putenv("TZ=Africa/Johannesburg");

?>
<table border=0>
    <tr>
        <td>
            <form name="form1" method="post">
                <table border=0
                    <tr>
                        <th>&nbsp;</th>
                        <th width=150>Dispatch Area</th>                        
                        <th width=150>Customer</th>  
                        <th width=150><center>Release Number</th>
                        <th width=130><center>Case Number</th>
                        <th width=80><center>Weight</th> 
                        <th width=80><center>Width</th> 
                        <th width=80><center>Length</th> 
                    </tr>
<?php
    while($rows=mysql_fetch_array($result)){
?>
                    <tr>
                        <td><input type="checkbox" name=check[]  value="<?php echo $rows['despgoodsid']; ?>"></td>
                        <td><?php echo $rows['crtd dept']; ?></td>
                        <td><?php echo $rows['customer']; ?></td>
                        <td><center><?php echo $rows['loc cust rel']; ?></td>
                        <td><center><?php echo $rows['case no']; ?></td>
                        <td><center><?php echo $rows['gross mass']; ?></td>
                        <td><center><?php echo $rows['case width']; ?></td>
                        <td><center><?php echo $rows['case length']; ?></td>

                    </tr>                                   

<?php
    }
?>
                    <tr>
                        <td colspan=3><input name="Next" type="submit" id="Next" value="Next"></td>
                    </tr>
                    <?php



                            $check=$_POST['check'];

                        if($_REQUEST['Next']=='Next'){
 {



$maxloadid = ' 
select 
max(loadid) +1 
from 
loaddetails 
'; 
$resultmaxloadid = mysql_query($maxloadid); // run the query 

// there was an error - output the message 
if (!$resultmaxloadid) 
{ 
echo 'there was an error in your query'; 
echo mysql_error(); 
die; 
} 

$loadid = mysql_result($resultmaxloadid, 0);

foreach($check as $key=>$value) // 
{ 
// get the details for one of the selected values 
$query = ' 
SELECT 
`despgoodsid`, 
`crtd dept`, 
`Customer`, 
`case no`, 
`gross mass` 
FROM 
despgoods_alldetails 
WHERE 
`despgoodsid` = "'. mysql_real_escape_string($value) . '" 
';

$result = mysql_query($query); // run the query 

// there was an error - output the message 
if (!$result) 
{ 
echo 'there was an error in your query'; 
echo mysql_error(); 
die; 
} 

// we got here, everything is fine 

if (!mysql_num_rows($result)) // the above query did not fetch any records, so there's a problem 
{ 
continue; // skip this record.. "continue" will ignore the rest of the foreach loop and go to the next step 
} 

$details = mysql_fetch_assoc($result); 

// inset the values 
$query = ' 
INSERT INTO 
loaddetails 
SET 
despgoodsid = "'.$details['despgoodsid'].'", 
dispatcharea= "'.$details['crtd dept'].'", 
Customer = "'.$details['Customer'].'", 
casenumber = "'.$details['case no'].'", 
weight = "'.$details['gross mass'].'", 
loadstatus= "loadplanned",
loadid = "'.$loadid.'" 
'; 

$result = mysql_query($query); // run the query 

// there was an error - output the message 
if (!$result) 
{ 
echo 'there was an error in your query'; 
echo mysql_error(); 
die; 
} 

// update the status 
$query = ' 
UPDATE 
despgoods_alldetails 
SET 
locstatus ="LoadCreated" 
WHERE 
despgoodsid = "'.mysql_real_escape_string($value) . '"
'; 
$result = mysql_query($query); // run the query 

// there was an error - output the message 
if (!$result) 
{ 
echo 'there was an error in your query'; 
echo mysql_error(); 
die; 
} 


} // end of foreach statement 
if($final) 
{ 
echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.hulaminloc.co.za/planningplatform/index.phpx`\">"; 
}



                                }
                                }

mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

再次感谢@Mishu和网站上的所有其他贡献者。