0

PHP で if ステートメントを使用しています。これにより、クエリが空の場合、PHP が効果的に実行されず、Web ページのその部分が非表示になります。これは私が使用しているif文です

if(!empty($result4)){

}

結果全体から個々の空の行を非表示にするために使用すると、他の場所では正常に機能しますが、クエリ全体に対して実行すると機能しません。

これは、クエリが空の場合、以下のすべての php コードです。

<?php 
if(!empty($result4)){


printf('<h2>%s News' . PHP_EOL, $row['name']);



$sLastStory = '';
foreach ($result4 AS $row4)
{
    $sStory = $row4['headline'] . $row4['story'];
    if (strcasecmp($sStory, $sLastStory) != 0)
    {
        if (!empty($sLastStory))
        {

        }
        $sLastStory = $sStory;


        printf('<h3>%s</h3>' . PHP_EOL, $row4['headline']);

        printf('<h4>%s</h4>' . PHP_EOL, $row4['Displaydate']);

        printf('<p>%s</p>' . PHP_EOL, $row4['story']);
    }

if(!empty($row4['url'])){   
printf('
<a href="/images/%s%s.jpg" rel="lightbox[%s]" title="%s - Credit - %s" >
<img src="/images/%s%s-thumb.jpg" style="max-height: 230px; max-width: 230px" alt="%s"/></a>' . PHP_EOL, $row4

['url'], $row4['alt'], $row4['headline'],  $row4['description'],$row4['credit'], $row4['url'], $row4['alt'], 

$row4['alt'] );
}

}

printf('

<br>

<hr>
<a class="bloglink" href="parknews.php?park_id=%s">See all %s news</a></li>' . PHP_EOL, $park_id, $row

['name']);

}
?>

それを機能させる方法はありますか?

それが役立つ場合、これは MySQL クエリです。

$park_id = $_GET['park_id'];
$query4= 'SELECT headline, story, DATE_FORMAT(date, "%d-%M-%Y") AS Displaydate, url, alt, description, credit
FROM tpf_news 
LEFT JOIN tpf_images ON tpf_news.news_id = tpf_images.news_id 
Where tpf_news.park_id = ' .  $park_id .' ORDER BY date DESC';
$result4 = $pdo->query($query4);

ありがとう

4

6 に答える 6

1

empty はここでは機能しません。SQL ステートメントが結果を返さない場合、PDO::query メソッドはとにかくオブジェクトを返します: PDOStatement. ただし、rowCount を使用して、ステートメントが空かどうかを確認できます。

于 2013-05-21T15:35:59.183 に答える
0

これを試して

if (is_array($result4) && sizeof($result4)>0) {
    // your code here!
}

また

$query4 = 'SELECT headline, story, DATE_FORMAT(date, "%d-%M-%Y") '
    . ' AS Displaydate, url, alt, description, credit '
    . ' FROM tpf_news '
    . ' LEFT JOIN tpf_images '
    . ' ON tpf_news.news_id = tpf_images.news_id '
    . ' Where tpf_news.park_id = ? '
    . 'ORDER BY date DESC';

$st = $pdo->prepare($query4);

// The following code can be placed in a loop

$st->execute(array($_GET['park_id']));

if ($st->rowCount()>0) {
    $aResult = $st->fetch();
    // your code

}

マルコス

于 2013-05-21T17:21:15.697 に答える