我的 SQL 数据库没有更新

Posted

技术标签:

【中文标题】我的 SQL 数据库没有更新【英文标题】:My SQL Database doesn't get updated 【发布时间】:2015-01-17 17:18:12 【问题描述】:

我有一个 .php 页面,允许用户通过为每个专家显示一个表单来选择专家的时间段,但是当我选择数据库必须使用新值更新的时间时,但事实并非如此。

这是 assigntotimeslot.php 中的表单代码,但专家列表显示正常。

<?php
$qry=" SELECT * FROM Specialist"; //selecting all specialists to display
$result =mysql_query($qry); //create query

//check whether it was successful or not

if($result) 
$did = 0;
Print " <table style='width:100%'>";

while($info=mysql_fetch_array($result))

if($did==0)



Print "<form action='assigntotimeslot_php.php?id='".$info['Spec_ID']."' method='POST' enctype='multipart/form-data' style='display:inline;'   

<tr>
     <td><figure style='text-align:centre;'>
  <img STYLE='border: thin solid grey;left:00px;top:00px;'src='img/idimg.jpg' alt='idimage' width='110' height='110'>
  <figcaption>".$info['Spec_Name']."<br/>".$info['Spec_ID']."<br/>".$info['Specialty']. "</br>  From: <select name='cars'>


  <option name='Time_in' value='08:00'>08:00AM</option>
  <option name='Time_in' value='09:00'>09:00AM</option>
  <option name='Time_in' value='10:00'>10:00AM</option>
  <option name='Time_in' value='11:00'>11:00AM</option>
  <option name='Time_in' value='12:00'>12:00AM</option>
    <option name='Time_in' value='02:00'>02:00PM</option>
  <option name='Time_in' value='04:00'>04:00PM</option>
  <option name='Time_in' value='05:00'>05:00PM</option>



</select>


 TO: <select name='cars'>


  <option name='Time_out' value='08:00'>08:00PM</option>
  <option name='Time_out' value='09:00'>09:00PM</option>
  <option name='Time_out' value='10:00'>10:00PM</option>
  <option name='Time_out' value='11:00'>11:00PM</option>
  <option name='Time_out' value='12:00'>12:00PM</option>
    <option name='Time_out' value='02:00'>02:00PM</option>
  <option name='Time_out' value='04:00'>04:00PM</option>
  <option name='Time_out' value='05:00'>05:00PM</option>


<input name='Submit' type='submit' value='Assign' />  </br></br></br></figcaption>
</figure></td> </form>";

$did++;
continue; 



if($did==1)

Print "<form action='assigntotimeslot_php.php?id='".$info['Spec_ID']."' method='POST' enctype='multipart/form-data' style='display:inline;'   

<tr>
     <td><figure style='text-align:centre;'>
  <img STYLE='border: thin solid grey;left:00px;top:00px;'src='img/idimg.jpg' alt='idimage' width='110' height='110'>
  <figcaption>".$info['Spec_Name']."<br/>".$info['Spec_ID']."<br/>".$info['Specialty']. "</br>  From: <select name='cars'>


  <option name='Time_in' value='08:00'>08:00AM</option>
  <option name='Time_in' value='09:00'>09:00AM</option>
  <option name='Time_in' value='10:00'>10:00AM</option>
  <option name='Time_in' value='11:00'>11:00AM</option>
  <option name='Time_in' value='12:00'>12:00AM</option>
    <option name='Time_in' value='02:00'>02:00PM</option>
  <option name='Time_in' value='04:00'>04:00PM</option>
  <option name='Time_in' value='05:00'>05:00PM</option>



</select>


 TO: <select name='cars'>


  <option name='Time_out' value='08:00'>08:00PM</option>
  <option name='Time_out' value='09:00'>09:00PM</option>
  <option name='Time_out' value='10:00'>10:00PM</option>
  <option name='Time_out' value='11:00'>11:00PM</option>
  <option name='Time_out' value='12:00'>12:00PM</option>
    <option name='Time_out' value='02:00'>02:00PM</option>
  <option name='Time_out' value='04:00'>04:00PM</option>
  <option name='Time_out' value='05:00'>05:00PM</option>


<input name='Submit' type='submit' value='Assign' />  </br></br></br></figcaption>
</figure></td></tr> </form>";
$did--;





Print " </table>";




else echo "There are no specialists";

    ?>

这是 assigntotimeslot_php.php

中的代码
// Start database connection
$Time_in = (isset($_POST['Time_in']) ? $_POST['Time_in'] : null);
$Time_out = (isset($_POST['Time_out']) ? $_POST['Time_in'] : null);

//Create query

$qry="UPDATE Specialist SET Time_in='".$Time_in."',Time_out='".$Time_out."";

$result=mysql_query($qry);

【问题讨论】:

我认为您的 html 语法不正确,这就是原因。 页面运行正常,但只有部分更新不起作用,您能告诉我您认为我的html哪里不正确 检查这个:$Time_out。"";我想你的意思是 $Time_out。"'"; 首先,您在 $Time_out 周围缺少一个单引号 nameselect 标记一起使用,而您缺少结束 select 标记。我想如果你做一个var_dump($_POST) 你只会得到汽车。您还需要添加一个WHERE 子句,否则它会将所有记录更新为这些值。 【参考方案1】:

您已为选项命名。你应该给选择标签命名。 而不是&lt;select name='cars'&gt;&lt;select name='Time_in'&gt;&lt;select name='Time_out'&gt;

【讨论】:

以上是关于我的 SQL 数据库没有更新的主要内容,如果未能解决你的问题,请参考以下文章

如何更新我的 SQL Server 数据库架构?

从两个表更新新创建的表 - SQL

我正在尝试在 android 的 sql lite 数据库中更新播放器的分数,但它没有发生

如何更新 linq2sql 模型?

未插入我的 SQL Server 的字段 [重复]

C# - 使用 XML 文件中的数据更新 SQL 表