2016-10-06 3 views
0

Мой код не работает. Я пытаюсь отключить кнопку на основе данных из ячейки таблицы. Это пример моей таблицы.Отключить кнопку на основе состояния ячейки db

Table A (tickets) 
*----------------* 
| id | repair_id | 
| 1 | 10, 11 | 
| 2 | 12  | 
*----------------* 

и мой текущий код:

<?php 
    $sql = "SELECT repair_id FROM tickets WHERE t_id =".$ticket_id." "; 
    $sql .= "AND repair_id REGEXP ',' "; 

     $box_check = mysqli_query($connection, $sql); 
     $box_empty = mysqli_fetch_array($box_check); 
      if(count($box_empty) == 0) { 
       echo "<button class='btn btn-primary' disabled='disabled' name='add_box'>Add Box</button>"; 
      } else { 
       echo "<button class='btn btn-primary' type='submit' name='add_box'>Add Box</button>"; 
      } 
?> 

Моя цель состоит в том, чтобы позволить поле, чтобы быть активным до тех пор, пока существует более 1 id в repair_id.

В настоящее время окно отключено или включено на всех в зависимости от того, установлен ли я if(count($box_empty) == true/false/0/1).

ответ

0

Прямо сейчас, ... REGEXP ', ' выбирает только те строки, которые содержат более одного идентификатора восстановления. Основываясь на вашем вопросе,

Моя цель - позволить ящику быть активным, если в файле repair_id содержится более 1 id.

Используйте простой SELECT запрос без REGEX и сделать использование strpos() функции, чтобы проверить, содержит ли repair_id столбца более чем один ремонт идентификаторов или нет, а затем отобразить кнопки соответственно, как это:

$sql = "SELECT repair_id FROM tickets WHERE t_id =".$ticket_id; 

$result = mysqli_query($connection, $sql); 
while($row = mysqli_fetch_array($result)){ 
    if(strpos($row['repair_id'], ",") === false) { 
     echo "<button class='btn btn-primary' disabled='disabled' name='add_box'>Add Box</button>"; 
    } else { 
     echo "<button class='btn btn-primary' type='submit' name='add_box'>Add Box</button>"; 
    } 
} 
+0

Это не сработало для меня. кнопки вообще не отображаются. –

+0

@ cpt-crunchy Сделайте 'echo $ result-> num_rows;' и проверьте, сколько строк вы получаете от запроса SELECT. Кроме того, вставьте свой код на [pastebin.com] (http://pastebin.com/index.php) и дайте мне ссылку. –

+0

Я добавил ссылку pastebin и добавил эхо без каких-либо результатов. [ЗДЕСЬ] (http://pastebin.com/aHFbd7XQ) –

Смежные вопросы