php" if"没有答案

时间:2018-05-15 06:44:14

标签: php mysql conditional-statements

这个问题应该很容易解决,但我不能...... 在请求之后,条件必须验证相关文章是否确实存在,验证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 :(得分:0)

执行此操作的一种方法是检查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';
}

答案 1 :(得分:0)

您可以使用PDO的fetchAll()功能,然后对数据运行foreach循环:

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

if(!empty($rows)){
    foreach($rows as $row){
        echo "content";
    }
}
else{
    echo "No Content";
}

答案 2 :(得分:0)

假设您正在使用Pdo,看起来您希望使用Pdo的fetchColumn方法。

<?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).';
}