私はスイッチケースで設定するクエリを持っています。 whileループは私の行を通り、3列のランダムな行を出力します。ここで列のデータが出力されます。クエリでスイッチケースが無視されます
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-us/) and-time-functions.html#function_dayofweek)? – tadman