从MySQL中选择,使用列中的修改数据来更新同一个表中的新列

时间:2017-10-20 23:01:34

标签: php mysql jeditable

我正在使用jQuery jeditable来允许基于MySQL数据库表编辑HTML表。但它不是问题。除了一个超时列之外,它在所有列上运行良好。我想获取logdate列的日期部分并使用它来构建超时值。新小时:min部分是用户输入的内容。正在编辑的列称为“超时”。

我的第一次尝试看起来像这样;

if ($column == "timeout") {
    $toSQL = "UPDATE NetLog t2
        JOIN NetLog t1 ON t2.recordID = t1.recordID
        SET t2.timeout = DATE_FORMAT(t2.logdate, '%Y-%m-%d')
        WHERE t2.recordID = $recordID";
    $stmt = $db_found->prepare($toSQL);
    $stmt->execute();
}

这没有更新表,也没有抛出任何错误。是的$ value解析为12:34或用户输入的任何内容。制作新的超时值2017-10-20 12:34。

然后我尝试了这个;

If ($column == "timeout") { $TOSQL = "SELECT DATE_FORMAT(logdate,
 '%Y-%m-%d') as dateonly, recordID
     FROM NetLog 
     WHERE recordID = $recordID"; foreach($db_found->query($TOSQL) as $row) {   $newdttm  = "$row[dateonly] $value";    $recordID =
 "$row[recordID]"; }    $moretogo = 1; }         if ($column == "timeout" AND
 $moretogo == 1) {  echo("$newdttm $recordID "); // 2017-10-20 12:34
 8117   $sql = "UPDATE NetLog SET timeout = '$newdttm' 
                             ,timeonduty =  (timestampdiff(SECOND, logdate, '$newdttm'))            WHERE recordID = $recordID "; $stmt = $db_found-prepare($sql);
 $stmt->execute(); }

回声的输出如下:2017-10-20 12:34 8117,这正是我所期待的。我也尝试了很多其他的东西,但我没有做任何更新MySQL表。这会引发500错误,但我找不到任何错误导致它。

0 个答案:

没有答案