簡體   English   中英

mysql更新正在更新所有行而不是一個

[英]mysql update is updating all rows instead of one

我有一個問題,似乎無法弄清楚什么地方出了問題。 我知道SQL注入,但是考慮到用戶我並不擔心。

好的,所以我的問題是更新時。 如果我把$update = "UPDATE robert SET req='$reqs' WHERE id='$x'"; 它什么也不做,如果我把$update = "UPDATE robert SET req='$reqs'"; 它更新整個列,這不是我想要的。 這是完整的代碼:

<?php
                $i = 0;
                $x = 0;
                $sql = "SELECT * FROM robert";
                $result = mysqli_query($conn, $sql);

                while($row = mysqli_fetch_assoc($result)){
                    echo "<form action='rmcclanahan.php' method='post'>
                    <table><tr>";
                    echo "<td><input type='text' name='date".$i."' value='".$row['date']."' size='8'></td>";
                    echo "<td><input type='text' name='req".$i."' value='".$row['req']."' size='6'></td>";
                    echo "<td><input type='text' name='po".$i."' value='".$row['po']."' size='6'></td>";
                    echo "<td><input type='text' name='requestor".$i."' value='".$row['requestor']."' size='6'></td>";
                    echo "<td><input type='text' name='line".$i."' value='".$row['line']."' size='5'></td>";
                    echo "<td><input type='text' name='description".$i."' value='".$row['description']."' size='12'></td>";
                    echo "<td><input type='text' name='price".$i."' value='".$row['price']."' size='12'></td>";
                    echo "<td><input type='text' name='supplier".$i."' value='".$row['supplier']."' size='6'></td>";
                    echo "<td><input type='text' name='eleven".$i."' value='".$row['eleven']."' size='12'></td>";
                    echo "<td><input type='text' name='carcap".$i."' value='".$row['carcap']."' size='12'></td>";
                    echo "<td><input type='text' name='carnum".$i."' value='".$row['carnum']."' size='6'></td>";
                    echo "<td><input type='text' name='engineering".$i."' value='".$row['engineering']."' size='12'></td>";
                    echo "<td><input type='text' name='costcenter".$i."' value='".$row['costcenter']."' size='6'></td>";
                    echo "<td><input type='text' name='accnum".$i."' value='".$row['accnum']."' size='5'></td>";
                    echo "<td><input type='text' name='recieved".$i."' value='".$row['recieved']."' size='6'></td>";
                    echo "<td><input type='text' name='recdate".$i."' value='".$row['recdate']."' size='8'></td>";
                    echo "<td><button type='submit' name='submit".$i."'>Edit</button></td>";
                    echo "</tr></table>
                    </form>";


                    $i++;
                    $x++;

                    }
                    if(isset($_POST['submit'.$i.''])){
                            $reqs = $_POST['req'.$i.''];
                            $update = "UPDATE robert SET req='$reqs' WHERE id='$x'";
                            $qry = mysqli_query($conn, $update);

                            }

查詢應如下所示:

$update = "UPDATE robert SET req='$reqs' WHERE id='{$row['id']}'";

$ X是在每次迭代中遞增的數字,並且id可以不同於$ x

在您的代碼中

$update = "UPDATE robert SET req='$reqs' WHERE id='$x'";

代替此行,只需將其更改為this->

$update = "UPDATE robert SET req= " . $reqs . " WHERE id=" . $x;

您遇到了問題,因為有時它無法獲取變量值,而要解決此問題,只需合並變量並使用它。 我沒有檢查,但是希望它能起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM