изменено входное значение php и база данных UPDATE - PullRequest
0 голосов
/ 23 февраля 2019

Поле «Примечание» можно обновить, и вы должны выделить его желтым цветом.Все остальные столбцы являются не подлежащими обновлению полями.Примечание было обновлено, я должен обновить столбец Примечание соответствующей записи в таблице базы данных.Для каждой обновленной записи должно отображаться сообщение «Примечание для кода xxxx обновлено».

вот мой код примечания к таблице

while($tablerow=mysqli_fetch_array($tableresult)){
        $amt=$tablerow['amount'];
        if($amt>'0'){
        $aColor='style="color:blue;"';
        }else{
        $aColor='style="color:red;"';
        }

        $operation="";
        if($tablerow['type']=='W'){
        $operation="Withdraw";
        }
        if($tablerow['type']=='D'){
        $operation="Deposit";
        }

        $source="";
        if($tablerow['sid']==1){
            $source="ATM";
        }else if($tablerow['sid']==2){
            $source="Online";
        }else if($tablerow['sid']==3){
            $source="Branch";
        }else{$source="Wired";
            }
        echo"
    <tr><td align='center'><input type='hidden' name='mid[".$i."]' value='".$tablerow['mid']."'>".$tablerow['mid']."</td>
        <td align='center'><input type='hidden' name='code[".$i."]' value='".$tablerow['code']."'>".$tablerow['code']."</td>
        <td align='center'".$aColor."><input type='hidden' name='amount[".$i."]' value='".$amt."'>".$amt."</td>
        <td align='center'><input type='hidden' name='type[".$i."]' value='".$operation."'>".$operation."</td>
        <td align='center'><input type='hidden' name='source[".$i."]' value='".$source."'>".$source."</td>
        <td align='center'><input type='hidden' name='date[".$i."]' value='".$tablerow['mydatetime']."'>".$tablerow['mydatetime']."</td>
        <td align='center' bgcolor='yellow'><input type='text' name='note[".$i."]' style='background-color:yellow' value='".$tablerow['note']."'></td>
        <td align='center'><input type='checkbox' name='delete[".$i."]' value='Y'></td></tr>\n";
        $i++;
    }

    echo "Total balance: $".$totalrow['total']."<br>";

    echo"<input type='submit' value='Update transaction'></form>";
    echo "</table>\n";

    echo "Total balance: $".$totalrow['total']."<br>";

    echo"<input type='submit' value='Update transaction'></form>";

это код, гдеЯ борюсь с

for($i=0; $i<$tablerow; $i++){
    if(isset($_POST['note'][$i])){
        $note=$_POST['note'][$i];
        $mid=$_POST['mid'][$i];
        mysqli_query($con,"UPDATE Money set note='$note' where mid='$mid' and note!='$note';");
        echo"Successfully update transaction code: UPDATE Money_kimeunb set note='".$note."' where id=".$mid." and note !='".$note."'<br>";
    }

, но так как у меня уже есть значение на входе примечания, он обновляет все значения таблицы не только там, где я хочу обновить.

1 Ответ

0 голосов
/ 23 февраля 2019

Похоже, что ваш запрос обновляет все заметки, где содержимое "заметки" НЕ равно опубликованной "заметке".

Я заметил, что вы передали код со своими данными поста, я предполагаю, что этостолбец в вашей базе данных, который связан с этой конкретной запиской.ЕСЛИ это уникальная ценность.Вы можете изменить

mysqli_query($con,"UPDATE Money set note='$note' where mid='$mid' and note!='$note';");

на

mysqli_query($con,"UPDATE Money set note='$note' where mid='$mid' and code ='$code';");

Вам, конечно, нужно определить $ code

Это, конечно, при условии, что Код здесь уникален?В противном случае самым простым способом достижения этого было бы использование уникального индекса, такого как идентификатор строки.

В этом случае вы могли бы написать:

mysql_query($con,"UPDATE Money set note='$note' where id='$id';");

Очевидно, вам снова потребуется определить $id здесь.

Но учтите, что при использовании скрытых значений в форме, которые используются в качестве индексов, очень легко для кого-то поместить данные в сообщение, не принадлежащее этому пользователю, вы быперед тем, как приступить к обновлению, всегда требуется какая-то проверка, чтобы гарантировать правообладание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...