我正在尝试在页面中创建一个循环,该循环使用数据库中的多个选项填充表单。在这种情况下,表单旨在创建一个ASSEMBLY,并且需要在数据库中选择已存在的PARTS。
我想要实现的方法如下:
一个。我在一个名为classes.php的文件中创建了一个包含以下函数的类:
<?php
$depth = "../";
require_once("connection.php");
////////////////////////////////////////////
class Parts
{
// SELECTS ALL PARTS FROM DATABASE
public function getPartInfo() {
global $con;
$partinfo = mysqli_query($con,"SELECT * FROM parts ORDER BY name");
$row = mysqli_fetch_assoc($partinfo);
return $row;
}
} // end of Parts
?>
B中。在另一个文件(assemblies.php)中,我试图捕获数组中所有字段的值,以便创建一个列出所有行的循环,以便用户可以选择程序集所需的部分。我正在尝试以下代码但没有成功:
<?php
session_start();
include "php_includes/classes.php";
$parts = new Parts();
$parts_detail = $parts->getPartInfo();
?>
<div class="row">
<div class="form-group col-md-12">
<table width="100%" id="partsTable">
<?php
foreach($parts_detail as $row) {
echo '<tr>
<td><input type="checkbox" name="parts[]" value="'.$row["id"].'" /></td>
<td><img src="https://lux365.s3.amazonaws.com/landing-pages/easilite/v1/img/easilite-logo.jpg" alt="" /></td>
<td>'.$row["name"].'</td>
<td><input type="number" name="partQuantity[]" min="0" /></td>
</tr>';
}
?>
</table>
</div>
</div>
$row["name"]
试图从部件表中获取字段NAME,$row["id"]
尝试从部件表中调用字段ID。
但是当我尝试这个时,会导致名字和身份证明都出现非法字符串偏移错误。
任何帮助都表示赞赏,因为我的OOP技能非常有限。
提前致谢
答案 0 :(得分:2)
getPartInfo()
只返回查询返回的第一行。然后你的for ($parts_detail as $row)
循环遍历该行中的列,而不是所有行。因此$row
是包含列值的字符串,$row['name']
会收到错误,因为$row
不是关联数组。
它应该有一个循环并返回所有行。
public function getPartInfo() {
global $con;
$partinfo = mysqli_query($con,"SELECT * FROM parts ORDER BY name");
$result = array();
while ($row = mysqli_fetch_assoc($partinfo)) {
$result[] = $row;
}
return $result;
}
答案 1 :(得分:1)
...试
class Parts
{
// SELECTS ALL PARTS FROM DATABASE
public function getPartInfo() {
global $con;
$partinfo = mysqli_query($con,"SELECT * FROM parts ORDER BY name");
$arrRow = array();
while($row = mysqli_fetch_assoc($partinfo)){
$arrRow[] = $row;
}
return $arrRow;
}
}