Php 从SQL数据库格式化HTML表
我的数据库包含我所在地区的交易。因此,每笔交易都包含一个位置、交易id(主键)、它应用的一周中的哪一天以及交易本身 理想情况下,我列出的数据表的标题为: 地点,星期一,星期二,星期三。。。等等 每行每个位置只有一个实例。问题是,我还没能做到这一点,到目前为止,周一的交易一直排在第一位。然后下一行是与每周二交易相同的地方,如下所示: 以下是将数据转换为HTML表的PHP代码: 我认为错误在我的循环中。不确定如何从一个$row切换到下一个$rowPhp 从SQL数据库格式化HTML表,php,sql,Php,Sql,我的数据库包含我所在地区的交易。因此,每笔交易都包含一个位置、交易id(主键)、它应用的一周中的哪一天以及交易本身 理想情况下,我列出的数据表的标题为: 地点,星期一,星期二,星期三。。。等等 每行每个位置只有一个实例。问题是,我还没能做到这一点,到目前为止,周一的交易一直排在第一位。然后下一行是与每周二交易相同的地方,如下所示: 以下是将数据转换为HTML表的PHP代码: 我认为错误在我的循环中。不确定如何从一个$row切换到下一个$row <!DOCTYPE HTML> &l
<!DOCTYPE HTML>
<html lang=en>
<head>
<title>Ashdeals</title>
<meta charset = "UTF-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<?php
//Create Connection
$mysqli = new MySQLi("localhost", "root", "", "ashdeals");
$sql = "SELECT * FROM deals";
// Query Database
$result = $mysqli->query($sql);
//Count the returned rows
if ($result->num_rows !=0){
//Turn results into an array
echo "<table>
<tr>
<th>Location</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
<th>Sunday</th>
</tr>";
// output data of each row
while($row = mysqli_fetch_array($result)) {
$location = $row['location'];
$deal = $row['deal'];
echo
"<tr>
<td>" . $location . "</td>
<td>" . $deal . "</td>
<td>" . $deal . "</td>
<td>" . $deal . "</td>
<td>" . $deal . "</td>
<td>" . $deal . "</td>
<td>" . $deal . "</td>
<td>" . $deal . "</td>
</tr>";
}
echo "</table>";
} else {
echo "0 results";
}
?>
</body>
</html>
阿什代尔
只需循环:
$dayArray = ['Monday', 'Tuesday' ..... 'Sunday'];
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['locationField'] . "</td>";
foreach ($dayArray as $dayField) {
if ($dayField == $row['dealDayField'] ) {
echo "<td>" . $row['dealField'] . "</td>";
}
else {
echo "<td></td>";
}
}
echo "</tr>";
}
echo "</table>";
$dayArray=[‘星期一’、‘星期二’、‘星期日’];
while($row=mysqli\u fetch\u数组($result)){
回声“;
回显“$row['locationField']”;
foreach($dayArray作为$dayField){
如果($dayField==$row['dealDayField']){
回显“$row['dealField']”;
}
否则{
回声“;
}
}
回声“;
}
回声“;
无需执行分配$valueX,可以回显$row[],但为了清晰起见,此处显示。简单解决方案:每天切换案例
编辑:每日交易
<!DOCTYPE HTML>
<html lang=en>
<head>
<title>Ashdeals</title>
<meta charset = "UTF-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<?php
//Create Connection
$mysqli = new MySQLi("localhost", "root", "", "ashdeals");
$sql = "SELECT * FROM deals";
// Query Database
$result = $mysqli->query($sql);
//Count the returned rows
if ($result->num_rows !=0){
//Turn results into an array
echo "<table>
<tr>
<th>Location</th>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
<th>Saturday</th>
<th>Sunday</th>
</tr>";
// output data of each row
while($row = mysqli_fetch_array($result)) {
$location = $row['location'];
$deal = $row['deal'];
$day = $row['day'];
$moDeal = ""; // Monday Deal variable.
$tuDeal = ""; // Tuesday Deal variable.
$weDeal = ""; // Wednesday Deal variable.
$thDeal = ""; // Thursday Deal variable.
$frDeal = ""; // Friday Deal variable.
$saDeal = ""; // Saturday Deal variable.
$suDeal = ""; // Sunday Deal variable.
switch ($day) {
case 'Mo':
$moDeal = $deal;
break;
case 'Tu':
$tuDeal = $deal;
break;
case 'We':
$weDeal = $deal;
break;
case 'Th':
$thDeal = $deal;
break;
case 'Fr':
$frDeal = $deal;
break;
case 'Sa':
$saDeal = $deal;
break;
case 'Su':
$suDeal = $deal;
break;
default:
# In case some daily deal:
$moDeal = $deal;
$tuDeal = $deal;
$weDeal = $deal;
$thDeal = $deal;
$frDeal = $deal;
$saDeal = $deal;
$suDeal = $deal;
break;
}
echo
"<tr>
<td>" . $location . "</td>
<td>" . $moDeal . "</td>
<td>" . $tuDeal . "</td>
<td>" . $weDeal . "</td>
<td>" . $thDeal . "</td>
<td>" . $frDeal . "</td>
<td>" . $saDeal . "</td>
<td>" . $suDeal . "</td>
</tr>";
}
echo "</table>";
} else {
echo "0 results";
}
?>
</body>
</html>
阿什代尔
我明白了,但我的“field1”和“field2”都是数据库中的“deal”字段。我如何区分周一交易和周二交易等等?好主意,不过这给了我一排周一交易,然后是一排周二交易,当我希望在一排指定地点的所有每日交易时。我应该用另一种方式设置我的数据库以使其更简单吗?哼,在“day”行添加告诉这是daily deal的随机字符串,然后在默认情况下将deal添加到所有变量中,我将在edit中显示。现在,如果在day行添加字符串“daily”,则切换案例将运行默认情况。然后所有的变量都会得到$deal值。好的luckI抱歉,我有点搞不懂你添加字符串“Daily”是什么意思?我到底需要在哪里添加它?另一个人回答的代码?是的,代码和你的都给出了相同的结果。