Подскажите как нажатием кнопки выводить имя из базы данных один раз, проблема в том что я вывожу имя но при втором ножати он опять выводит , нужно поставить ограничения на вывод из БД кнопка сделано на html методом POST,
пример:
require_once('process.php'); //---Mysqli connect DB
//Кнопка
<form name="frm" method="POST">
<button name="singline" value="wcenter">Очередь</button>
</form>
//Добавления в базу
if(isset($_POST['singline'])) {
$query="INSERT INTO `online`(`id`, `onusername`, `onsurname`, `date`) VALUES
(NULL, '$personal', '$sur', UNIX_TIMESTAMP())";
$result=$con->query($query);
mysqli_clode();
}
//Вывод массива в БД
$select=mysqli_query($con, "SELECT `id`, `onusername`, `onsurname`, `date` FROM `online`;");
while ($m=mysqli_fetch_array($select)){
$monitor1=$m['onusername']." ";
$monitor2=$m['onsurname']." ";
$monitor="$monitor1, $monitor2";
echo ($monitor. "<br>");
}
Для того чтобы кнопка сработала один раз можно сделать так:
/* Флаг, отвечающий за вызов функции */
let RUN = true;
$('button[name="my"]').on('click', function(){
if ( RUN ) {
$( this ).text('Нажимать бесполезно');
$( this ).after('<div class="alert alert-primary mr-3 ml-3" role="alert">Иванов Иван Иванович</div>');
RUN = false;
}
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn btn-success m-3" name="my">Можно выводить</button>
Можно сделать так:
$('button[name="my"]').on('click', function(){
$(this).prop('disabled', true);
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="btn btn-success m-3" name="my">Можно выводить</button>
А можно быть сатанистом мазохистам и через ajax
в бд изменять флаг на вывод данных из бд.
Все логично, сколько раз вы принимаете $_POST['singline']
- столько записей в БД и добавится. А ваш селект читает вообще все записи из БД и в цикле их выводит.
В зависимости от того, что вам действительно нужно, есть несколько вариантов.
Для начала я бы изменил структуру таблицы и сделал поле id
автоинкрементным и первичным ключом.
1) Вам нужно хранить в БД все факты нажатия кнопки, а выводить последнюю для всех пользователей.
SELECT onusername, onsurname, MAX(date) FROM online GROUP BY onusername, onsurname;
2) Вам нужно хранить только факт последнего нажатия кнопки
Самый дурацкий вариант - сделать первичный ключ на поля (onusername, onsurname). Правильный вариант с id
- но это теории на целую статью будет - потом сами разберетесь.
Обновляем значение (Запомните - подставлять переменные напрямую в запрос - это очень плохо! Почитайте про подготовленные запросы):
INSERT INTO online (onusername, onsurname, date)
VALUES ('$personal', '$sur', UNIX_TIMESTAMP())
ON DUPLICATE KEY UPDATE date=UNIX_TIMESTAMP();
Читаем так-же, как у вас в коде.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть статьи, которые имеют дату опубликованияЕсть связанная таблица с категориями статей
В мире уже давно используются mysqli и PDOМногие очень активно их пропагандируют: есть подготовленные переменные, всё становится безопасно и прочее