Php 如何更新特定行(患者)?

Php 如何更新特定行(患者)?,php,Php,每次我更新patient1的AppointStatusID时,它都会影响其他患者(patient2、patient3…)的AppointStatusID。我尝试在更新中添加代码WHERE appointmentstatusid='$\u POST[appointmentstatusid]',但当我添加代码时,它将不再更新。您必须为要影响的行提供有效且匹配的id。你如何决定这取决于你自己。然后,做一些类似的事情: <?php mysql_connect("localhost", "r

每次我更新patient1的AppointStatusID时,它都会影响其他患者(patient2、patient3…)的AppointStatusID。我尝试在更新中添加代码
WHERE appointmentstatusid='$\u POST[appointmentstatusid]'
,但当我添加代码时,它将不再更新。

您必须为要影响的行提供有效且匹配的id。你如何决定这取决于你自己。然后,做一些类似的事情:

<?php
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("dentalclinic") or die(mysql_error());

    if (isset($_POST['update'])){
    $UpdateQuery = "UPDATE appointment SET appointmentstatusid='$_POST[appointmentstatusid]'";
    mysql_query($UpdateQuery);
    };

    $sql = "SELECT * from appointment a join appointmentstatus s on (a.appointmentstatusid=s.appointmentstatusid) join patient p on (a.patientid=p.patientid)";
    $query = mysql_query($sql) or die(mysql_error());

    echo "<table border=1>
    <tr>
    <th>FIRST NAME</th>
    <th>LAST NAME</th>
    <th>APPOINTMENT STATUS</th>
    <th>UPDATE</th>
    </tr>";

    while($record = mysql_fetch_array($query)){
    echo "<form action=editstatus.php method=post>";
    echo "<tr>";
    echo "<td>"."<input type=text name=firstname value=".$record['firstname']."></td>";
    echo "<td>"."<input type=text name=lastname value=".$record['lastname']."></td>";
    echo "<td>";
    $query2 = "SELECT * from appointmentstatus"; 
    $result = mysql_query($query2);
    echo "<select name=appointmentstatusid>"; 
    while ($line = mysql_fetch_array($result)) {
    echo "<option value=".$line['appointmentstatusid'].">"; 
    echo $line['appointmentstatus'];
    echo "</option>";
    }
    echo "</select>";
    echo "</td>";

    echo "<td>"."<input type=submit name=update value=update"."></td>";
    echo "</tr>";
    echo "</form>";
    }       
echo "</table>"
?>
在第6行试试这个

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

要更新特定记录,您的查询应该有一个WHERE子句,指定要更新的内容

$UpdateQuery = "UPDATE appointment SET willChangeColumn = 'newValueForThatColumn' WHERE appointmentstatusid=".$_POST['appointmentstatusid'];
请注意:直接从$\u POST传递$\u POST[appointmentstatusid]变量会使您的代码易受sql注入攻击。试一试

$UpdateQuery = "UPDATE appointment SET appointmentstatusid='$_POST[appointmentstatusid]' WHERE `appointmentid` = 1";

或者练习使用数据库抽象库。

try$UpdateQuery=“更新约会集appointmentstatusid=”{$\u POST['appointmentstatusid']}”;不要再使用
mysql.*
函数,因为它们在当前版本的PHP中不受欢迎。改用
PDO
mysqli
。@SyedQarib结果相同。它会更新所有内容。此查询将更新所有内容,因为未声明任何条件,若要更新特殊行,则必须声明解决问题的条件。它给了我一个关于WHERE子句的想法。谢谢:)
$appointmentstatusid = (int) mysql_real_escape_string($_POST[appointmentstatusid]); 
$UpdateQuery = "UPDATE appointment SET appointmentstatusid='".appointmentstatusid ."' WHERE `appointmentid` = $id";