用外键更新表

时间:2016-03-17 14:36:28

标签: php mysql

我在和超时系统中创建了时间。这是表

  

时间表

| id | time id | time in | time out |
|  1 |    1    | 1:00 am |          |
|  1 |    2    | 1:013am |          |

ID 是外键,而时间ID 时间表主键。如何更新超时表?

以下是时间

中的代码
$id = $_GET['id'];
$timein = date('Y/m/d H.i.s');

$sql = "INSERT INTO time (id, timein)
        VALUES
        ('$id','$timein')
";
$query = mysql_query($sql);

mysql_close();

if(is_resource($query) and mysql_num_rows($query)>0){
    $row = mysql_fetch_array($query);
    echo $row["id"];
    }
echo $sql;

这是正确的,但我的问题是如何更新超时

这将定位特定时间ID,例如时间ID 1.但我还想更新超时

我已经尝试过这样的事情了

$timeid = $_SESSION['timeid'];
$id = $_GET['id'];
$timein = $_POST['timein'];
$timeout = date('Y/m/d H.i.s');

$sql = "UPDATE time SET(time_id, id, timein, timeout)
        VALUES
        ('$time_id','$id','$timein','$timeout') WHERE id = $id
";
$query = mysql_query($sql);

mysql_close();

if(is_resource($query) and mysql_num_rows($query)>0){
    $row = mysql_fetch_array($query);
    echo $row["id"];
    }
echo $sql;

这是用于查看时间和超时的上下文的代码,那么如何才能获得编辑它的确切timeid?

include_once 'dbconfig.php';
session_start();
$id = $_GET['id'];
$sql = "SELECT * FROM time WHERE id = $id";
$result = mysql_query($sql);
?>
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td><center>".$row['time_id']."</center></td>";
echo "<td><center>".$row['timein']."</center></td>";
echo "<td><center>".$row['timeout']."</center></td>";
echo "<td><center>".$row['totalmin']."</center></td>";
echo "<td><a href= \"timeout.php?id=".$row['time_id']." \"> timeout";
echo "</tr>";

由于MAWIA,更新正常,但是当我更新时,只有一个timeid会更新

1 个答案:

答案 0 :(得分:1)

如果您想更新超时,我认为您不需要更新time_id,id和timein,因为您已经插入了第一个语句。所以你的更新声明是:

   $checkFk = mysql_query("SET FOREIGN_KEY_CHECKS=0");//turn off foreign key
   $sql = "UPDATE `time` SET `timeout`='$timeout' WHERE `timeid` = '$timeid'";
   $resetFk = mysql_query("SET FOREIGN_KEY_CHECKS=1");//turn on foreign key

不要使用mysql扩展名请查看mysql improved extensionpdo