IF-ELSE из MySQL на основе одной строки - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь получить значение 'entryScans' из моей SQL-таблицы и отправить его в $ output на основе случая IF-ELSE. Что я делаю не так?

<?php

include ('config.php');
$TicketNo=$_POST["TicketNo"];
$hash=$_POST["hash"];

$sql = "SELECT TicketNo,hash,entryScans FROM `Tickets` WHERE `TicketNo` = '$TicketNo' AND `hash` = '$hash'" or die(mysql_error());
$result = mysql_query($sql);
$row=mysql_num_rows($result);

if($row['entryScans'] = 0){
$output="ok";
}
else if ($row['entryScans'] > 0) {
 $output="maybe";
else{
 $output="error";
}
print(json_encode($output));
mysql_close();

?>

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Вы не обрабатываете свои результаты. Вы просто получаете общее количество строк в переменной $row.

Вам необходимо обработать результат запроса с помощью цикла.

Вот пример

while ($row = mysql_fetch_array($result, MYSQL_NUM)) 
{
    if($row['entryScans'] = 0)
    {
      $output="ok";
    }
    else if ($row['entryScans'] > 0) 
    {
      $output="maybe";
    }
    else
    {
    $output="error";
    }
}

Надеюсь, это работает для вас.

0 голосов
/ 11 мая 2018

Вы делаете ...

if($row['entryScans'] = 0){

У которого есть 2 проблемы, = - назначение, == - тестирование, равное.Вторая часть заключается в том, что вы извлекаете результаты в ...

$result = mysql_query($sql);
$row=mysql_num_rows($result);

Итак, $row - это количество строк, $result - это результаты запроса ...

проверьте количество строк в наборе результатов

if($row == 0){

и т. д.

Обновление:

Если вы хотите, чтобы значение столбца entryScans toиспользовать, тогда вам нужно изменить вызов mysql_num_rows() на mysql_fetch_assoc(), так что

$row=mysql_fetch_assoc($result);

Затем вы можете оставить остаток кода для использования $row['entryScans']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...