我有一个查询,我在switch case中设置。 while循环遍历我的行,并打印出3个randoms行,其中列id, weekday, description
中的数据被打印出来。在查询中忽略switch case
while循环正在工作并打印出3个随机行。但似乎开关案件完全被忽视。无论选择星期三还是星期六,我都会在星期三和星期六获得混合打印。
该表格的目的,是我可以排序只能看到星期三和星期六单独。有人知道为什么会这样吗?
HTML
<select name="weekday" class="form-control selectpicker" >
<option value=" ">Select Weekday</option>
<option value="alldays">All Days</option>
<option value="wednesday">Wednesday</option>
<option value="saturday">Saturday</option>
</select>
<form method="post">
<button class="btn btn-warning">Shuffle</button>
</form>
PHP
<?php
$sql = "SELECT id, weekday, description FROM articles";
switch(isset($_POST['weekday'])){
case 'wednesday':
$sql .= " WHERE weekday LIKE 'Wednesday'";
break;
case 'saturday':
$sql .= " WHERE weekday LIKE 'Saturday'";
break;
}
$sql .= " ORDER BY RAND () LIMIT 3";
$res = $mysqli->query($sql);
if ($res->num_rows > 0) {
while($row = $res->fetch_assoc()) {
echo "article Number: " . $row["id"]. "<br>" .
"Weekday: " . $row["weekday"]. "<br>" .
"Description: " . $row["description"]. "<br><br>".
'<div class="btn btn-warning btn-open-modal" data-id="'.$row["id"].'">See Details '.'</div><br><br>';
}
} else {
echo "0 results";
}
?>
您错过了一个'break;'。投票结束为错字。 – Siguza
像这样的字符串存储周日是有问题的。为什么不是0 ... 6或1 ... 7,你选择一个符合['DAYOFWEEK()'](https://dev.mysql.com/doc/refman/5.7/en/date-和时间functions.html#function_dayofweek)? – tadman