php "if" без ответа - PullRequest
       9

php "if" без ответа

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

Эта проблема должна быть проста для решения, но я не могу ... После запроса условие должно проверить, действительно ли соответствующая статья существует, с проверкой URL ($ _GET).

Мой код : (тестовый файл с простым эхом)

    $id = $bdd->prepare('SELECT content FROM articles WHERE idArticle = ?');
    $id->execute(array($_GET['numArticle']));

    while ($dataID = $id->fetch()) {
        if (empty($dataID) or $dataID == null or !isset($dataID)) {   
           echo 'No content';
        } else {
            echo 'Can load the page';
        }
    }

    $id->closeCursor(); 

Поведение страницы : "могу загрузить страницу" пишет, когда numArticle прав, но еслиэто не, ничего не появляется, ни сообщение об ошибке или что-то.Любая идея / совет?Спасибо.

Ответы [ 3 ]

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

Вы можете использовать fetchAll() функцию PDO, а затем запустить цикл foreach для данных:

$rows = $id->fetchAll(PDO::FETCH_ASSOC);

if(!empty($rows)){
    foreach($rows as $row){
        echo "content";
    }
}
else{
    echo "No Content";
}
0 голосов
/ 15 мая 2018

Если вы используете Pdo, похоже, что вы хотите использовать метод fetchColumn Pdo.

<?php

$stmt = $db->prepare('SELECT content FROM articles WHERE idArticle = ? LIMIT 1');
$stmt->execute(array($_GET['numArticle']));

if ($result = $stmt->fetchColumn()) {
    echo 'A result';
} else {
    echo 'Db fetch returned false (or could be a string that evaluates to false).';
}
0 голосов
/ 15 мая 2018

Один из способов сделать это - проверить количество строк, возвращаемых mysqli:

$id = $bdd->prepare('SELECT content FROM articles WHERE idArticle = ?');
$id->execute(array($_GET['numArticle']));  

if($id->num_rows > 0){
  echo "can load page";
}else{
 echo 'No content';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...