Чтобы попытаться сделать это проще для понимания, я сократил этот пример вместо фактического кода, который я использую, но я знаю, в чем проблема, я просто не уверен, как использовать foreach
для вывода результат моего запроса MySQL.
У меня есть массив, похожий на этот
$thetablestructure = array(
array('tableheader' => 'header 1', 'tablevalue' => 'value1'),
array('tableheader' => 'header 2', 'tablevalue' => 'value2'),
);
И я хочу, чтобы вывод HTML был примерно таким:
<table>
<tr>
<th>header 1</th>
<th>header 2</tth>
</tr>
<tr>
<td>value 1</td>
<td>value 2</td>
</tr>
</table>
Вот код, который я пытаюсь использовать, какие ошибки говорят о недопустимом смещении строки и недопустимом значении:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$keywords = $_REQUEST['keywords'];
$sql = "SELECT * FROM `stock` WHERE `model` LIKE '%$keywords%'";
$result = $conn->query($sql);
$thetablestructure = array(
array('tableheader' => 'Header 1', 'tablevalue' => 'value1'),
array('tableheader' => 'Header 2', 'tablevalue' => 'value2'),
);
echo "<table><tr>";
foreach ($thetablestructure as $thetablestructure) {
echo "<th>".$thetablestructure[tableheader]."</td>";
}
echo "</tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo('<tr>');
foreach ($thetablestructure as $thetablestructure) {
echo "<td>".$row["$thetablestructure[tablevalue]."]."</td>";
}
echo('</tr>');
}
echo "</table>";
$conn->close();
Первоначально это был код, который я использовал, прежде чем пытаться упростить и сжать его:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Retrieve keyword for MySQL query and search database
$keywords = $_REQUEST['keywords'];
$sql = "SELECT * FROM `stock` WHERE `model` LIKE '%$keywords%'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "
<table>
<tr>
<th>Heading 1</th>
<th>Heading 2</th>
</tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo('<tr>');
echo "<td>".$row["$thetablestructure[tableheader]"]."</td>";
echo "<td>".$row["value2"]."</td>";
echo('</tr>');
}
echo "</table>";
} else {
echo "<p>0 results for ".$keywords."
}
$conn->close();
Надеюсь, что это имеет смысл, и кто-то может мне помочь.