Member 13637584 Ответов: 1

Значение всех кнопок, имеющих один и тот же идентификатор?


Я использую инструкцию update SQL для обновления базы данных MYSQL, однако каждая кнопка, похоже, возвращает один и тот же идентификатор (первый идентификатор первого элемента, отображаемого на странице) Я повторил каждый MealID, и каждый из них правильный, так что где-то должно быть что-то не так, что не получает разные идентификаторы для каждой кнопки.

Смотрите мой код ниже. Может ли кто-нибудь увидеть здесь проблему?

-Петля для отображения элементов с помощью кнопок.

Что я уже пробовал:

-Петля для отображения элементов с помощью кнопок.
while($dbRow=$dbQuery->fetch(PDO::FETCH_ASSOC) and ($cnt < $max)) 
{
  echo "".$dbRow["Name"]."".$dbRow['Picture']."' width='150' height='150'/>"."<br><br>".$dbRow["Instructions"]."

<form method='POST'><input type='hidden' name='MealID' value='".$dbRow['MealID']."'><input type='submit' name='submit' value='Complete'>";


//UPDATE SQL STATEMENT - (получение одного и того же значения для каждой кнопки)
$value = $_POST['MealID'];
//var_dump($value);

if(($_POST['MealID'])) {
$dbQuery=$conn->prepare("UPDATE Users SET Display = 1 WHERE 
UserID=:UserID AND MealID=$value"); 
$dbParams = array(':UserID'=>$UserID);
$dbQuery->execute($dbParams);
}

1 Ответов

Рейтинг:
10

Christiaan van Bergen

Каждый раз, когда вы отправляете свою форму, все входные данные будут отправлены. Теперь у вас, вероятно, есть несколько с одним и тем же именем: например, "MealID". Так что, когда бы вы ни спросили

$value = $_POST['MealID'];
вы получите первую запись.

Убедитесь, что имена входных данных отличаются или что вы создаете отдельную форму для каждой строки. Например:
<form method='POST'><input type='hidden' name='MealID' value='Meal1'><input type='submit' name='submit' value='Complete'></form>
<form method='POST'><input type='hidden' name='MealID' value='Meal2'><input type='submit' name='submit' value='Complete'></form>