ページに出力する変数に保存しているMySQLクエリがあります。順序付けされていないリストにデータがありますが、左に浮かぶ3つの順序付けられていないリストを使用してデータを3つの列に分割しようとしています。これが私の現在のコードです:
$sqlCommand =
"SELECT list_specialty.id, list_specialty.specialty FROM list_specialty
ORDER BY list_specialty.specialty ASC";
$query = mysqli_query($myConnection,$sqlCommand) or die (mysqli_error($myConnection));
$specialtyDisplay = '';
$num = mysqli_num_rows($query);
$split = intval($num/3); //number of items in every column
$i = 0;
while ($row = mysqli_fetch_array($query)) {
$specialtyid = $row["id"];
$specialtyname = $row["specialty"];
$specialtyDisplay .=
'<li><a href="doctor.php?specialty=' . $specialtyid . '">' . $specialtyname . '</a></li>';
$i++;
if ($i == $split) {
$specialtyDisplay .= '</ul> <ul>';
$i = 0;
}
}
このコードは、私のデータが3(等しい列)で正確に割り切れる限り、うまく機能します。ただし、行の総数が3で割り切れない場合、上記のコードは機能しません。
列のバランスをとるソリューションが必要なので、3つの等しい列、最初の列に1つの追加要素、または1番目と2番目の列に1つの追加要素を含めることができます。
それを説明するために、コードで何を変更する必要がありますか?