#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