Кнопка отключения на основе состояния ячейки db

#php #mysqli

#php #mysqli

Вопрос:

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

  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) .

Ответ №1:

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

Моя цель — разрешить поле быть активным до тех пор, пока в repair_id больше 1 идентификатора.

Используйте простой SELECT запрос без REGEX функции strpos() и используйте функцию 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>";
    } 
}
  

Комментарии:

1. У меня это не сработало. кнопки вообще не отображаются.

2. @cpt-crunchy Сделайте echo $result->num_rows; и проверьте, сколько строк вы получаете из запроса SELECT. Кроме того, вставьте свой код на pastebin.com и дайте мне его ссылку здесь.

3. Я добавил ссылку pastebin плюс добавил echo без каких-либо результатов. ЗДЕСЬ

4. Я нашел свою проблему. У меня был предыдущий запрос, который я использовал, и я не указал значение ticket_id в запросе. Этот код работал отлично. Спасибо @Rajdeep