Я пытаюсь получить некоторые данные из базы данных. Я создаю функцию, которая находится в файле functions.php
, которые возвращают значение. На другой странице я создаю переменную и просто получаю ее. Я пытался использовать onkey
для проверки базы данных, но потом понимаю, что мне нужно знать количество билетов, даже если они ничего не набирают.Как получить данные из базы данных sql-сервера в php без обновления страницы
Вот функция:
function.php
function is_ticket_able($conn){
$query = "select number_of_tickets from [dbo].[TICKETS] " ;
$stmt = sqlsrv_query($conn, $query);
while ($row = sqlsrv_fetch_array($stmt)) {
$amount_of_tickets = $row['number_of_tickets'];
}
return $amount_of_tickets;
}
И, я пытаюсь проверить базу данных (без перезагрузки страницы) и получить значение на этой странице:
application.php
$amount_of_tickets = is_ticket_able($conn);
Тогда я просто проверю, что $amount_of_tickets
не 0 или 1. Потому что, если это один, то некоторые вещи должны измениться.
Я делаю это (внутри application.php):
if($amount_of_tickets !=0){
//show the form and let them apply for tickets.
//also
if($amount_of_tickets == 1){
//just let them apply for one ticket.
}
}
EDIT: Я видел, что AJAX будет правильным использовать, но я так запутать его использования.
UPDATE:
function.php
function is_ticket_able($conn){
$query = "select number_of_tickets from [dbo].[TICKETS_LKUP] " ;
$stmt = sqlsrv_query($conn, $query);
while ($row = sqlsrv_fetch_array($stmt)) {
$ticket = $row['number_of_tickets'];
}
return $ticket;
}
application.php
$amount_of_tickets = is_ticket_able($conn);
<script type="text/javascript">
var global_isTicketAble = 0;
checkTicket();
function checkTicket()
{
$.ajax(
{
url: "application.php",
method: 'GET',
dataType: 'text',
async: true,
success: function(text)
{
global_isTicketAble = text;
alert(global_isTicketAble);
if(global_isTicketAble == 0){
window.location.replace("http://www.google.com");
}
setTimeout(checkTicket, 5000); // check every 5 sec
}
});
}
</script>
Итак, теперь проблема в том, что, когда я alert(global_isTicketAble);
это не предупредить значение из базы данных, но это делает предупреждение все, что находится внутри application.php ... Помощь plzzz
несколько вещей. Итак, мне не нужно 'onkey'? Кроме того, мне нужна переменная билета, чтобы убедиться, что это не 0 ... могу ли я просто использовать ее в любом месте? И, наконец, O слышал, что с Ajax мне нужно «отгонять» что-то от моей функции (обязательное «эхо»)? –
«Мне не нужно« onkey ». Я не знаю, это зависит от того, что вам нужно сделать. Этот фрагмент предоставил значение каждые 5 секунд. Вы можете настроить код для извлечения значения при возникновении события. Поскольку я использовал глобальную память для хранения извлеченного значения, она доступна из любого места в коде, но более целесообразно «делать что-то», когда значение извлекается. --- «Мне нужно« эхо »...», конечно, вам нужно передать значение сценарию на стороне клиента через ответ, и вы выполните это, повторив результат. – Paolo
Таким образом, проблема заключается в том, что пользователь не может видеть количество оставшихся билетов. Есть ли способ, которым я не мог бы повторить количество оставшихся билетов? –