Мне нужно добавить форму ввода для поиска второго столбца в таблице.
Я попытался добавить форму. Попытался вручную положить то, что я ищу в строке SELECT, и он находит данные. Просто нужно быть в состоянии найти его с помощью ввода формы.
<?php
/**
* Mark as Paid
*/
require "../config.php";
require "../common.php";
$success = null;
if (isset($_POST["submit"])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$itemnumber = $_POST["submit"];
$sql = "UPDATE consignsold SET paid='y' WHERE paid='n' AND sold='y' AND itemnumber = $itemnumber";
$statement = $connection->prepare($sql);
$statement->bindValue(':itemnumber', $itemnumber);
$statement->bindValue(':paid', $paid);
$statement->bindValue(':sold', $sold);
$statement->execute();
$success = "Item successfully updated";
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM consignsold WHERE paid='n'";
$statement = $connection->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
?>
<?php require "templates/header.php"; ?>
<h2>Mark Items as Paid</h2>
<?php if ($success) echo $success; ?>
<style>
table, th, td {
border: 1px solid black;
}
</style>
<form method="post">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<table>
<thead>
<tr>
<th>Sale Number</th>
<th>Item Number</th>
<th>Lot Number</th>
<th>Category</th>
<th>Item Description</th>
<th>Reserve</th>
<th>Seller Number</th>
<th>Amount</th>
<th>Buyer Number</th>
<th>Sold</th>
<th>Paid</th>
<th>Mark</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["salenumber"]); ?></td>
<td><?php echo escape($row["itemnumber"]); ?></td>
<td><?php echo escape($row["lotnumber"]); ?></td>
<td><?php echo escape($row["category"]); ?></td>
<td><?php echo escape($row["itemdescription"]); ?></td>
<td><?php echo escape($row["reserve"]); ?></td>
<td><?php echo escape($row["sellernumber"]); ?></td>
<td><?php echo escape($row["amount"]); ?></td>
<td><?php echo escape($row["buyernumber"]); ?></td>
<td><?php echo escape($row["sold"]); ?></td>
<td><?php echo escape($row["paid"]); ?></td>
<td><button type="submit" name="submit" value="<?php echo escape($row["itemnumber"]); ?>">Mark as Paid</button></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</form>
<br>
<?php require "templates/footer.php"; ?>
Если я пытаюсь добавить форму, я получаю пустую страницу. Я ожидаю форму с местом для ввода номера покупателя. Как есть, страница работает, но отображает все товары, и оператор должен вручную найти каждый товар по номеру покупателя и нажать кнопку «Пометить как оплаченную». То, что мне нужно сделать, это ввести данные, в которых он запрашивает номер покупателя, и перечислить только те элементы, которые отмечены кнопкой отметки в конце. Это операция с замкнутым контуром, поэтому в настоящее время не стоит беспокоиться об инъекциях.
Строка: $sql = "SELECT * FROM consignsold WHERE paid='n'";
будет изменена на что-то вроде: $sql = "SELECT * FROM consignsold WHERE paid='n' AND buyernumber = <from form input>";
Некоторые попросили уточнить. ,,Я думал, что было довольно ясно начать с но. ,,ПЕРЕСМОТР. Что мне нужно на этой странице, так это ввод формы, который запрашивает у оператора номер покупателя, а затем использует ввод из этой формы в строке SELECT, чтобы найти номер покупателя и продал = 'y'. «customernumber» - это столбец, а «sold» - это столбец в таблице: consignsold. Еще раз спасибо всем, кто пытается помочь!