Я бился об этом несколько дней, я наконец сдаюсь и теперь ищу помощи.
У меня есть 2 набора кода, которые работают
Он вызывает приведенный ниже и передает "IS NULL" другой функции, а другая функция отображает данные.
<html>
<head>
<link rel = "stylesheet" href = "style.css">
<title>My PHP</title>
</head>
<body>
<div class = "body">
<?php
require_once 'ShowInventory.php';
DBShowInventory("IS NULL");
?>
</div>
</body>
</html>
<?php
function DBShowInventory($WhichInventory){
require_once 'connection.php';
$conn = Connect();
$result = $conn->query("select Description, PartNumber, Serial, Store, Cost, MSRP, DateReceived from inventory where DateSold $WhichInventory;");
echo "</br></br></br>\r\n";
echo "<table class=\"center\"> \r\n";
echo ' <tr>';
echo ' <th>Description</th>';
echo ' <th>Part Number</th>';
echo ' <th>Serial</th>';
echo ' <th>Store</th>';
echo ' <th>Cost</th>';
echo ' <th>MSRP</th>';
echo ' <th>DateReceived</th>';
echo " </tr> \r\n";
while ($row = $result->fetch_assoc()) {
unset($Description, $PartNumber, $Serial, $Store, $Cost, $MSRP, $DateReceived);
$Description = $row['Description'];
$PartNumber = $row['PartNumber'];
$Serial = $row['Serial'];
$Store = $row['Store'];
$Cost = $row['Cost'];
$MSRP = $row['MSRP'];
$DateReceived = $row['DateReceived'];
echo "<tr> \r\n";
echo "<td>" .$Description. "</td> \r\n";
echo "<td>" .$PartNumber. "</td> \r\n";
echo "<td>" .$Serial. "</td> \r\n";
echo "<td>" .$Store. "</td> \r\n";
echo "<td>";
echo "₱";
echo number_format($Cost,2,'.',',');
echo "</td> \r\n";
echo "<td>";
echo "₱";
echo number_format($MSRP,2,'.',',');
echo "</td> \r\n";
echo "<td>" .$DateReceived. "</td> \r\n";
echo "</tr> \r\n";
}
echo "</table> \r\n";
}
?>
Что я надеюсь сделать, так это перевернуть логику и разместить сценарий сверху для отображения и использовать сценарий снизу только для выполнения запроса к базе данных. Таким образом, я могу использовать эту функцию снова и снова для разных целей.
Я пробовал это сделать, но все, что у меня получилось, - это одна запись, повторенная 7 раз.
<?php
function DBLookup($DateSold){
require_once 'connection.php';
$conn = Connect();
$result = $conn->query("select Description, PartNumber, Serial, Store, Cost, MSRP, DateReceived from inventory where DateSold $DateSold;");
$row = (array) $result->fetch_assoc();
return $row;
}
?>
Это сценарий, который я хотел использовать для обработки $ row
<html>
<head></head>
<body>
<?php
require_once 'GetMultiRecordFromDB.php';
$row=DBLookup("IS NULL");
echo "</br></br></br>\r\n";
echo "<table class=\"center\"> \r\n";
echo ' <tr>';
echo ' <th>Description</th>';
echo ' <th>Part Number</th>';
echo ' <th>Serial</th>';
echo ' <th>Store</th>';
echo ' <th>Cost</th>';
echo ' <th>MSRP</th>';
echo ' <th>DateReceived</th>';
echo " </tr> \r\n";
foreach($row as $rowdata) {
unset($Description, $PartNumber, $Serial, $Store, $Cost, $MSRP, $DateReceived);
$Description = $rowdata['Description'];
$PartNumber = $rowdata['PartNumber'];
$Serial = $rowdata['Serial'];
$Store = $rowdata['Store'];
$Cost = $rowdata['Cost'];
$MSRP = $rowdata['MSRP'];
$DateReceived = $rowdata['DateReceived'];
echo "<tr> \r\n";
echo "<td>" .$Description. "</td> \r\n";
echo "<td>" .$PartNumber. "</td> \r\n";
echo "<td>" .$Serial. "</td> \r\n";
echo "<td>" .$Store. "</td> \r\n";
echo "<td>";
echo "₱";
echo number_format($Cost,2,'.',',');
echo "</td> \r\n";
echo "<td>";
echo "₱";
echo number_format($MSRP,2,'.',',');
echo "</td> \r\n";
echo "<td>" .$DateReceived. "</td> \r\n";
echo "</tr> \r\n";
}
echo "</table> \r\n";
?>
</body>
</html>
Спасибо, ребята, с нетерпением жду вашего ответа.






Чаще вы извлекаете данные в цикле и передаете обратно массив записей ...
function DBLookup($DateSold){
require_once 'connection.php';
$conn = Connect();
$result = $conn->query("select Description, PartNumber, Serial, Store, Cost, MSRP, DateReceived from inventory where DateSold $DateSold;");
$data = array();
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
return $data;
}
Вы должны изучить подготовленные операторы, чтобы защитить себя от различных форм инъекций, но при использовании этого для подстановки это не подходит. Убедитесь, что вы довольны тем, что это открыто для злоупотреблений.
Также было бы «лучше», если бы вы передали соединение в метод, поэтому
function DBLookup($DateSold, $conn){
Поскольку это позволяет вам управлять используемым соединением, а не функциями, всегда создающими свои собственные.
Большое спасибо, Найджел, это сработало как шарм. Я ужасно себя чувствую из-за того, что задаю такой вопрос новичку. Опять же, я новичок.
См. php.net/manual/mysqli-result.fetch-all.php