Синтаксическая ошибка из-за лишней запятой. Уберите запятую перед WHERE и с вами все будет в порядке.
$sql = "UPDATE ssoretailerlist
SET ret = '$_POST[ret]', code = '$_POST[code]', status = '$_POST[status]'
WHERE idnum = '$_POST[idnum]'";
Для каждого поля есть кнопка отправки . Вместо того, чтобы создавать новую форму и отправлять ее для каждой строки в цикле, по одному из них каждый раз вручную вне цикла.
<?php
include('config.php');
$result = mysqli_query($connect, "SELECT * FROM table123");
?>
<html>
<table>
<form action="test.php" method="post">
<?php while ($res = mysqli_fetch_array($result)) { ?>
<tr>
<td><input type="text" name="ret" value="<?php echo $res['ret']; ?>"/></td>
<td><input type="text" name="code" value="<?php echo $res['code']; ?>"/></td>
<td><input type="text" name="status" value="<?php echo $res['status']; ?>"/></td>
<td><input type="hidden" name="idnum" value="<?php echo $res['idnum']; ?>"/></td>
</tr>
<?php } ?>
</table>
<input type="submit" name="update" value="Submit"/>
</form>
</html>
Вы можете также обработать вывод, который вы вставляете в форму. Если данные содержат двойные кавычки, это может нарушить ваш HTML. Проверьте htmlspecialchars () . Судя по заголовкам ваших колонок, я не думаю, что это будет полезно, но всегда полезно помнить.
Однако каждая строка имеет одинаковые входные имена . Это проблема. Как он узнает, какой ret
, code
, status
или idnum
выбрать и связать вместе? Сначала вы хотите превратить имена в массивы . Затем вы хотите пройтись по массиву idnum
и выполнить несколько запросов UPDATE
, обращаясь к одному и тому же ключу в других массивах. Напишите новый вопрос, если вы застряли, работая над этим.
И, наконец, ваш файл config.php очень необходим . Вы можете прочитать эту ветку о require_once () против include () . Хорошо генерировать ошибку и обрабатывать ее в случае сбоя включения вместо продолжения обработки остальной части сценария.