2014-01-14 5 views
0

Запуск проблемы с функцией ниже. В основном все мои таблицы имеют столбец, в котором «прекращено» будет либо «0», либо «1». У меня возникли проблемы с работой инструкции if.Если проблема с заявлением (PDO :: FETCH_ASSOC)

// Function that checks if items are already discontinued or not 
function checkDiscontinued($dbh, $discontinued) { 
try { 
    foreach ($discontinued as $id) { 
     //check to see if itemdiscontinued is 1 or 0 
     $stmt = $dbh->query("SELECT discontinued FROM `$id` ORDER BY `date` DESC LIMIT 1"); 

     if (!$stmt->fetch(PDO::FETCH_ASSOC)) { 
     echo "Action if true"; 
     } else { 
     echo "Action if false"; 
     } 
    } 
} 
    catch (PDOException $e) { 
    echo $e->getMessage(); 
    } 
} 
+0

«У меня возникли проблемы с получением инструкции if» - Что это значит? Как хранится «прекращено»? Каков его тип? – Shoe

ответ

2

Метод выборки() всегда возвращает истину, независимо от того, что ваши столбцы возвращают в виде результирующего набора (он должен быть здравый смысл, я думаю).

Вам нужно назначить значение столбца переменной и проверить значение.

const DISCONTINUED = 1; 

function checkDiscontinued($dbh, $discontinued) { 
try { 
    foreach ($discontinued as $id) { 
     $stmt = $dbh->query("SELECT discontinued FROM `$id` ORDER BY `date` DESC LIMIT 1"); 

     $row = $stmt->fetch(PDO::FETCH_ASSOC); 
     if($row['discontinued'] == self::DISCONTINUED) { //if the column result == '1' 
      echo "Action if true"; 
     } else { 
      echo "Action if false"; 
     } 
    } 
} 
    catch (PDOException $e) { 
     echo $e->getMessage(); 
    } 
} 
+0

Бум! Спасибо за это! – DrDog

Смежные вопросы