Как предположил Магнус Эрикссон, была проблема с моим методом POST ... даже если это казалось нормальным, у моей переменной custom_n был странный вывод var_dump string(12)""
.Я помню, что я использовал тот же код ранее и работал, поэтому я просто изменяю код, чтобы он был точно таким же: на странице, на которой у меня есть форма, которая отправляет «переменную POST», я использовал этот код:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$custom_n = array();
try {
$conn = new PDO("mysql:host=$servername;dbname=classicmodels", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn -> prepare("SELECT checkNumber, paymentDate, amount, customerNumber FROM payments ORDER BY paymentDate DESC");
$stmt -> execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
if ($k == 'customerNumber') {
array_push($custom_n, $v);
}
}
$tableCodes = "<table id='buttons'>";
foreach ($custom_n as $c) {
$tableCodes .= "
<tr>
<td>
<form action='customers.php' method='post' target='POPUPW' onsubmit=\"POPUPW = window.open('about:blank','POPUPW', 'width=800px,height=600px');\">
<button type='submit' name='code' value='$c'>Details</button>
</form>
</td>
</tr>
";
}
$tableCodes .= "</table>";
echo $tableCodes;
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
$conn = null;
?>
Я подумал, что мог бы потратить некоторое время на получение custom_n из другого запроса, который я делаю, чтобы заполнить таблицу на этой странице вместо того, чтобы делать другой запрос.Я не совсем уверен, что с этим не так, но с этим изменением я решил проблему:
<?php
$servername = "localhost";
$username = "root";
$password = "";
try {
$conn = new PDO("mysql:host=$servername;dbname=classicmodels", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn -> prepare("SELECT checkNumber, paymentDate, amount, customerNumber FROM payments ORDER BY paymentDate DESC");
$stmt -> execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
$customQuery = $conn -> prepare("SELECT customerNumber FROM payments ORDER BY paymentDate DESC");
$customQuery -> execute();
$custom = $customQuery->fetchAll(PDO::FETCH_COLUMN);
$tableCodes = "<table id='buttons'>";
foreach ($custom as $c) {
$tableCodes .= "
<tr>
<td>
<form action='customers.php' method='post' target='POPUPW' onsubmit=\"POPUPW = window.open('about:blank','POPUPW', 'width=800px,height=600px');\">
<button type='submit' name='emp' value='$c'>Details</button>
</form>
</td>
</tr>
";
}
$tableCodes .= "</table>";
echo $tableCodes;
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
$conn = null;
?>
Я должен поблагодарить всех, в частности, MagnusEriksson, MasivuyeCokile и Pr1nc3, о которых я никогда не узналПодготовленные параметры.Большое спасибо, и если вы узнаете, почему предыдущий код не работал, не стесняйтесь комментировать: D.