在php中选择并使用表中的值,然后将其插入同一表中的不同列中?

在php中选择并使用表中的值,然后将其插入同一表中的不同列中?,php,mysql,sql,database,mysqli,Php,Mysql,Sql,Database,Mysqli,假设一个表中有4列,我在PHP do计算和转换中选择了3列,并希望用新的更新值更新最后一列。 从同一个表中选择和插入两个值的最佳方法是什么我尝试在PHP中的条件内打开一个新查询。没有成功。。。然后我试着把它放在同一个查询“INSERT INTO hired_jobscal”和其他代码中。整个事情都崩溃了 date_default_timezone_set("Asia/Kolkata"); date_default_timezone_get(); $date = date('Y/m/d H:i

假设一个表中有4列,我在PHP do计算和转换中选择了3列,并希望用新的更新值更新最后一列。

从同一个表中选择和插入两个值的最佳方法是什么
我尝试在PHP中的条件内打开一个新查询。没有成功。。。然后我试着把它放在同一个查询“INSERT INTO hired_jobscal”和其他代码中。整个事情都崩溃了

 date_default_timezone_set("Asia/Kolkata");
date_default_timezone_get();
$date = date('Y/m/d H:i:s', time());


$sql = "SELECT hjl.local_job_id, hjl.job_status, hjl.hire_time_date, hjl.hirer_id, hjl.worker_id 
        FROM hired_jobslocal hjl, WHERE $job_status = 'open' AND $diff > 2332800";

    $result = mysqli_query($con, $sql);

    //Current date time

    if (mysqli_num_rows($result) > 0) {
 // output data of each row
 while($row = mysqli_fetch_assoc($result)) {

     //Getting values from table
    $local_job_id = $row["local_job_id"];
    $job_status = $row["job_status"];
    $hire_time_date = $row["hire_time_date"];

    //Checking the difference for 27 days
    //Getting difference in Unix Format(Decimal Seconds)
    $diffinSeconds = strtotime("$date") - strtotime("$hire_time_date");
    $diff = floor($diffinSeconds);

    //Getting differences in days hours and seconds
    $days    = floor($diffinSeconds / 86400);
    $hours   = floor(($diffinSeconds - ($days * 86400)) / 3600);
    $minutes = floor(($diffinSeconds - ($days * 86400) - ($hours * 3600))/60);
    $seconds = floor(($diffinSeconds - ($days * 86400) - ($hours * 3600) - ($minutes*60)));


    echo $local_job_id, '-local_job_id<br/>';
    echo $hire_time_date, '- Hirer time date<br/>';
    echo $date, '- Current time <br/>';
    echo $days, '-Difference in days <br/>';
    echo $diff, '-Difference in seconds <br/>';
    echo $job_status, '-job Status<br/><br/><br/>';
date\u default\u timezone\u set(“亚洲/加尔各答”);
日期\默认\时区\获取();
$date=日期('Y/m/d H:i:s',time());
$sql=“选择hjl.local\u job\u id、hjl.job\u status、hjl.hire\u time\u date、hjl.hier\u id、hjl.worker\u id
来自已雇用的工作本地hjl,其中$job\u status='open'和$diff>2332800”;
$result=mysqli\u查询($con,$sql);
//当前日期时间
如果(mysqli_num_行($result)>0){
//每行的输出数据
while($row=mysqli\u fetch\u assoc($result)){
//从表中获取值
$local_job_id=$row[“local_job_id”];
$job_status=$row[“job_status”];
$hire_time_date=$row[“hire_time_date”];
//检查差异27天
//获取Unix格式的差异(十进制秒)
$diffinsionds=strottime($date”)-strottime($hire\u time\u date);
$diff=地板($diffinsonds);
//获取日、小时和秒的差异
$days=最低限额($diffinsonds/86400);
$hours=楼层($diffinsionds-($days*86400))/3600);
$minutes=楼层($diffinsionds-($days*86400)-($hours*3600))/60);
$seconds=floor($diffinsionds-($days*86400)-($hours*3600)-($minutes*60));
echo$local_job_id'-local_job_id
; echo$hire_time_date,“-租用人时间日期
”; echo$date,'-当前时间
; echo$days,“-天数差异
”; echo$diff'-秒差
; echo$job_status,'-job status



您的代码应该是什么样的模型:

<?php
$query = "SELECT id,col1,col2,col3 FROM your_table WHERE $job_status = 'open' AND $diff > 2332800";
//execute query
//fetch the result and do you calculation
// set a variable to store your id or an array if nur_rows>1
//if num_rows = 1
$query="UPDATE your_table SET col4 =what_you_want_to_enter WHERE id=$your_id";
//else
foreach($your_array AS $your_id){
$query="UPDATE your_table SET col4 =what_you_want_to_enter WHERE id=$your_id";
}
?>

所说的插入-你的意思是更新同一行中第四列的值吗?如果是这样,你可以使用单个update语句。不需要其他任何东西。是的,但它不能用于单个查询,因为它有计算和转换。我不知道如何在最后一列中插入新值。我使用PHP进行计算。向我们展示你需要的代码现在有了。根据计算的复杂性,有两种方法可以做到这一点。直接在mysql查询中执行,或者选择,在php中处理结果,然后在mysql中执行更新。“从同一个表中选择和插入两个值的最佳方法是什么?”-好的,您可以运行or。