将数据库记录与textfield值匹配并在php中更新数据库

将数据库记录与textfield值匹配并在php中更新数据库,php,Php,我正在创建一个网页,其中管理员可以更新学生的记录(这里是需求草案编号),它将更新特定学生id的记录。 我正在处理的代码如下,问题是数据库中所有记录的DD编号都会更新,而不是文本字段中提到的id。 如果有人能提供一个可能的解决方案,我将不胜感激 代码如下: <div class="main row"> <?php $connect_mysql=mysql_connect("localhost","root",""); $mysql_db=mysql

我正在创建一个网页,其中管理员可以更新学生的记录(这里是需求草案编号),它将更新特定学生id的记录。 我正在处理的代码如下,问题是数据库中所有记录的DD编号都会更新,而不是文本字段中提到的id。 如果有人能提供一个可能的解决方案,我将不胜感激

代码如下:

    <div class="main row">
    <?php
    $connect_mysql=mysql_connect("localhost","root","");
    $mysql_db=mysql_select_db("mca",$connect_mysql);

    ?>      
    <form name="form1" method="POST" action="">
    Enter the student's Registration ID :<span style="padding-left:20px"> <input type="text" id="studentsearch" name="studentsearch"></span>
    </br> </br><span style="padding-left:190px"><input name="submit" type="submit" value="search"></span></br>

    <?php
    if(isset($_POST['submit']))
    {

        $id=$_POST['studentsearch'];
        $query1="select 1 from user where id=$id" ;
        $result1=mysql_query($query1) or die("Query Failed:".mysql_error());
        if(mysql_num_rows($result1)>0)
        {
             echo 'student  present';
        }
        else
        {
            echo 'student not present';
        }
    }
    ?>
    </br>
    </br>Enter the Demand Draft no : <span style="padding-left:46px"><input type="text" name="dd"></span>
    </br></br><span style="padding-left:190px">
    <input name="update" type="submit" value="update"></span><span style="padding-left:10px">
    <input name="clear" type="submit" value="cancel" ></span>
    <?php

    if(isset($_POST['update']))
    {
        $connect_mysql=mysql_connect("localhost","root","") or die("cannot connect"); 
    $mysql_db=mysql_select_db("mca",$connect_mysql);

        $id1=$_POST['studentsearch'];
        $dd=$_POST['dd'];
        $sql="SELECT id FROM user ";
        $result1 =mysql_query($sql,$connect_mysql) or die(mysql_error($connect_mysql));

    while($row = mysql_fetch_array($result1))
        if($id1=$row['id'])
        {
                $q="UPDATE user SET DD='$dd'";
        $result2=mysql_query($q,$connect_mysql) or die("Query Failed".mysql_error());
        }
        mysql_close($connect_mysql);

    }
    ?>
    </form>
    </div>

输入学生的注册ID:





输入即期汇票编号:


虽然mysql不推荐使用,但问题就在这里

$q="UPDATE user SET DD='$dd'";
这应该是

$q="UPDATE user SET DD='$dd' WHERE id='$id1'";
这一行同样需要WHERE子句

$sql="SELECT id FROM user ";
作为

编辑:

试试这个,让我知道你的结果是什么

if(isset($_POST['update'])) {
    $connect_mysql=mysql_connect("localhost","root","") or die("cannot connect"); 
$mysql_db=mysql_select_db("mca",$connect_mysql);

    $id1=$_POST['studentsearch'];
    $dd=$_POST['dd'];
    $sql="SELECT id FROM user WHERE id='$id1'";
    $result1 =mysql_query($sql,$connect_mysql) or die(mysql_error($connect_mysql));

while($row = mysql_fetch_array($result1)) {
if(($row['id']) == $id1) {
$q="UPDATE user SET DD='$dd' WHERE id='$id1'";
$result2=mysql_query($q,$connect_mysql) or die("Query Failed".mysql_error());
}

mysql_close($connect_mysql);

} // Close While Loop
}
$dd
变量下面添加用于故障排除数据问题的代码:

echo $id1;
echo $dd;
在更新提交按钮输入上方添加以下内容:

<input type="hidden" name="ssresult" value="<?php if(isset($_POST['studentsearch'])) { echo $_POST['studentsearch']; } ?>">

不推荐使用
mysql\
函数。我建议您查看
PDO
,而不是在查询中缺少条件语句。现在,在select和update中,您都告诉它将操作应用于每个表中的每个记录。在更新时,您忘记了th
WHERE
子句,
$q=“update user SET DD='$DD'WHERE id=$id”您不需要
WHILE
循环。使用
mysqli
PDO
而不是
mysql
,即使我使用where子句,它也会提供相同的结果。它会继续更新数据库中的所有记录,而不是特定的idI。我已经更新了我的答案,在我看来代码应该如何布局,while循环中缺少大括号,因此结果集无法正确返回,where子句应该是$id1,再次查看代码,因为没有任何内容得到更新。数据库不受影响。在更新数据库时,您可以始终回显$\u POST数据的值,以便查看在$dd=$\u POST['dd']'添加回显$id1下推送的数据;echo$dd;echo$id1;不返回任何结果…那么我现在如何使其工作..文本字段中的值是使用$\u POST、rite获取的?
<input type="hidden" name="ssresult" value="<?php if(isset($_POST['studentsearch'])) { echo $_POST['studentsearch']; } ?>">
if(isset($_POST['update'])) {
$connect_mysql=mysql_connect("localhost","root","") or die("cannot connect"); 
$mysql_db=mysql_select_db("mca",$connect_mysql);

$id1=$_POST['ssresult'];
$dd=$_POST['dd'];
$sql="SELECT id FROM user WHERE id='$id1'";
$result1 =mysql_query($sql,$connect_mysql) or die(mysql_error($connect_mysql));

while($row = mysql_fetch_array($result1)) {
if(($row['id']) == $id1) {
$q="UPDATE user SET DD='$dd' WHERE id='$id1'";
$result2=mysql_query($q,$connect_mysql) or die("Query  Failed".mysql_error());
}

mysql_close($connect_mysql);

} // Close While Loop
}