我正在尝试从数据库中获取数据到html表。在数据库中有一个公司表,其中包含id,name和percentage列。
表格中的上述数据是我手动输入的。我需要通过从数据库中检索来填充相同的值。
数据库中的公司表看起来像这样。Database table
在我的编码中,它在阵列形成的位置出现错误。我试图将所有名称放入一个数组并在html表中打印。我很恳请看看我的编码。非常感谢。
$sql = "SELECT name, percentage FROM company";
$result = $conn->query($sql);
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row= $result->fetch_assoc()) {
$arr=str_split($row)
//echo $row;
echo "<table> <tr> <td> $arr[1] </td> </tr> </table> ";
}
} else {
echo "0 results";
}
@jakumi错误是enter image description here。第18行是'$ arr = str_split($ row);'。
答案 0 :(得分:1)
str_split
期望一个字符串,$row
但是已经是一个数组。例如,您只需$row['name']
访问每行的字段。
所以
echo '<table>';
while($row= $result->fetch_assoc()) {
echo '<tr><td>'.$arr['name'].'</td><td>'.$arr['percentage'].'</td></tr>';
}
echo '</table>';
已更新以回答特定评论:
$percentages = [];
$namesToPercentages = [];
$collection = [];
while($row = $result->fetch_assoc()) {
$percentages[] = $row['percentage'];
// this produces [0 => 0, 1=>1.1, 2=>1.2, ...]
$namesToPercentages[$row['name']] = $row['percentage'];
// this produces ['Base_price' => 0, 'A' => 1.1, ...]
$collection[]= $row;
// this produces [['name' => 'Base_price', 'percentage'=>0], [...],...]
}