从SQL数据库检索数据到HTML表

时间:2017-09-12 06:19:59

标签: php mysql sql arrays database

我正在尝试从数据库中获取数据到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);'。

1 个答案:

答案 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], [...],...]
}