UZEIR
@UZEIR
Учусь. Пытаюсь развиваться.

Как примерить циклы? Чтобы один работал в другом?

У меня вот такой вот код. Результат этого кода таков. Что выводится 40 чекбоксов. То есть два раза копируются они. Потому что из базы выводится 2 значения, если выводится 3 то чекбоксы копируются в 3 раза. Мне нужно чтобы в чекбоксах условие работала таким образом, что выведится 20 чекбоксов и неактивными из них будут 2.(ну или сколько выведится значений из базы). В чем моя ошибка? Как один цикл не посредственно заставить работать не зависимо от другого? Как во втором цикле сделать так чтобы $d перебирала значения и проверка шла так как надо.
<?php
$rf= mysql_query("SELECT * FROM `zRestoran` WHERE idrest='$id' and data='$data' and time='$time'");
while($row = mysql_fetch_assoc($rf)) {  $d = $row['nomer']; 
for( $x = 1; $x <= 20; $x++ ) {   ?>
<input type="checkbox" <? if($d==$x){?> disabled="disabled" <? } ?> name="stolik[]" value="<? echo $x; ?>"><? echo $x; ?>
<?php } } ?>
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
Ayahuaska
@Ayahuaska
Хочу знать всё.
Ошибка в том, что на каждую строку выборки из базы, у вас отрабатывает по циклу.

UPD:
Солюшон:
<?php
$rf= mysql_query("SELECT * FROM `zRestoran` WHERE idrest='$id' and data='$data' and time='$time'");
$nums = [];
while($row = mysql_fetch_assoc($rf)) {
  $nums[] = $row['nomer']; 
}

for( $x = 1; $x <= 20; $x++ ) {
  <input type="checkbox" <? if (in_array($x, $nums)) echo 'disabled="disabled"'; } ?> name="stolik[]" value="<?= $x ?>"><?=$x ?>
} 
 ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dzheka3d
@dzheka3d
Зачем вам вообще цикл for? что вы с чем сравниваете и что хотите получить в результате?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы