实际上我想在网页上以csv格式显示数据。数据存储在数据库的消息字段中。 数据是:
data count
120 80
140 50
170 100
150 70
180 120
我想在csv格式的网页上显示这些数据,用逗号分隔,如:data,count。 我在其他一些网站上发现了这个代码,但不是在网页上显示数据,而是在文件夹中创建csv文件并将数据存储在其中。 这是代码:
// open connection to mysql database
$connection = mysqli_connect($host, $username, $password, $dbname) or
die("Connection Error " . mysqli_error($connection));
// fetch mysql table rows
$sql = "select message from wholesaler";
$result = mysqli_query($connection, $sql) or die("Selection Error " . mysqli_error($connection));
$fp = fopen('books.csv', 'w');
while($row = mysqli_fetch_assoc($result)) {
fputcsv($fp, $row);
}
fclose($fp);
//close the db connection
mysqli_close($connection);
有谁能告诉我解决它的步骤?
答案 0 :(得分:0)
您提供的代码使用循环将数据保存到CSV文件中。因为您不需要将其保存在文件中,所以您必须使用输出上的某些代码打印行替换此循环。
根据您的代码,您需要替换此部分
$fp = fopen('books.csv', 'w');
while($row = mysqli_fetch_assoc($result))
{
fputcsv($fp, $row);
}
以此为例
while($row = mysqli_fetch_assoc($result)) {
//we need to split your message into array
$csvRows = explode("\n", $row['message']);
$head = [];
if (array_key_exists(0, $csvRows)) {
$head = explode(' ', trim($csvRows[0]));
}
$data = [];
for ($i = 1; $i < count($csvRows); $i++) {
$data[] = explode(' ', trim($csvRows[$i]));
}
//print recognized headers
echo '<table width="100%"><tr>';
foreach ($head as $h) {
echo "<th>{$h}</th>";
}
echo '</tr>';
//print your csv row as table row
foreach ($data as $r) {
echo '<tr>';
foreach ($r as $v) {
echo "<td>{$v}</td>";
}
echo '</tr>';
}
echo '<table>';
}