Передача конкретных из нескольких SQL-запросов для динамического формирования - PullRequest
0 голосов
/ 19 октября 2018

Запрос работает нормально.Я получаю таблицу со связанными данными в строках.Как вы видите, мне нужна кнопка с каждой строкой, которая вызывает функцию, которая влияет на конкретную строку, с которой она отображается.У меня это работает с нормальной формой, то есть, если я введу значение Part_Number вручную, функция будет работать успешно, но проблема в том, чтобы она была более динамичной.Я предоставил соответствующий код.

Вкратце: когда я нажимаю кнопку, которая отображается с Part_Number, он должен обновить (добавить единицу) значение количества этого Part_Number.

SQL не выдает ошибку, нотоже не работает.Все, кроме передачи переменных, динамически работает.

$sql = "SELECT id, Part_Number, Description, Location, Quantity, Certificate 
FROM Inventory WHERE Part_Number LIKE'%$q%'";
$result = $conn->query($sql);

  while($row = $result->fetch_assoc()) 
  echo "
  <form method='POST' action='plusone.php'><tbody>
  <tr>
  <th><h2>".$row["Part_Number"]."</h2></th>
  <td><h2>".$row["Description"]."</h2> </td>
    <td><h2>".$row["Location"]."</h2> </td>
    <td>
    <input type='submit' class='btn btn-success' value='Plus 1'>

    <input type='hidden' class='form-control' name='Part_Number_Entry' 
 id='$Part_Number_Entry' value=''>

 </tr>

 </tbody>
  </form>";


if (isset($Part_Number1)) {



// the single quotes around the last variable are very important. If left out 
the update wont work
$sql = "UPDATE TestTable SET Quantity= Quantity + 1 WHERE Part_Number= 
'$Part_Number1'";

}elseif (!isset($PartNumber)) {
echo "PartNumber is not set"; 
    # code...
}
if (mysqli_query($conn, $sql)) {
  echo "Added One to current Record successfully";
} else {
  echo "Error updating record: " . mysqli_error($conn);
  echo $Quantity;
 echo "   ";
}
mysqli_close($conn);
?>

1 Ответ

0 голосов
/ 19 октября 2018

Есть довольно много проблем, но это наименьший код, который я мог бы придумать, который, мы надеемся, поможет вам, по крайней мере, двигаться в правильном направлении:

<input type='hidden' class='form-control' name='Part_Number_Entry' id='$Part_Number_Entry' value=''>

должно быть

<input type='hidden' class='form-control' name='Part_Number_Entry'  value='$row["Part_Number_Entry"]' >

это 'имя', которое становится ключом массива, а значение берется из вашей строки базы данных

if (isset($Part_Number1)) {

должно быть

if (isset($_POST['Part_Number_Entry')) {

ваше размещение формы, а также значение, которое выwant находится в этом массиве.

Чтобы получить $Part_Number1 для запроса

$Part_Number1=(int)$_POST['Part_Number_Entry');

, приведенного к типу int, вам нужно гораздо более безопасные запросы к базе данных в будущем.

Это не очень хороший ответ, и я надеюсь, что некоторые сообщения будут лучше.

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