0

背景

  • 这是以下代码,它将从名为的 MySQL 表中选择四个字段a_aif
  • 我想在 html 表中显示这些数据并突出显示a_aif.aif_id等于的行背景remaining_if.aif_id
  • 我在 SQL 查询中定义了一个满足上面这个条件的变量并定义了它remaining_aifs

问题- 请查看我认为问题所在的红色箭头/突出显示的语法...

在此处输入图像描述

PHP 脚本

<?php
require_once 'config.php';

$dbh = new PDO($dsn, $dbuser, $dbpass);

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$result = $dbh->query("
    SELECT a_aif.aif_id,
      a_aif.fee_source_id,
      a_aif.company_name_per_sedar,
      a_aif.document_filing_date,
      IF (a_aif_remaining.aif_id IS NULL, 0, 1) remaining_aifs
    FROM  a_aif
      LEFT JOIN a_aif_remaining
        ON a_aif_remaining.aif_id = a_aif.aif_id
    ORDER BY aif_id DESC");

$result->setFetchMode(PDO::FETCH_ASSOC);

if ( !empty($result) ) : endif;

?>

<table>
<tr>
    <th><b>Document ID</b></th>
    <th><b>Pubco Name</b></th>
    <th><b>Filing Date</b></th>
    <th><b>PDF</b></th>
</tr>

<?php foreach($result as $index => $row) : ?>
<tr
    <?php
        if('a_aif.aif_id' === 'remaining_aifs'
        echo "<tr class='highlighted'>";
        else echo "<tr>";
    ?>
>
    <td><?php echo $row[fee_source_id]; ?></td>
    <td><?php echo $row[company_name_per_sedar]; ?></td>
    <td><?php echo $row[document_filing_date]; ?></td>
    <td></td>
</tr>
<?php endforeach;
$dbh = NULL;
?>
</table>
4

3 回答 3

1

1)empty()是一个构造,如果您传递的值是以下任何一种,则返回 true:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

2)$result是传递给empty(). 由于您没有发布任何其他代码,因此不知道它的设置。

3) 这:是为 if 语句定义块的另一种语法。您需要endif;在块的末尾结束它。

这种替代语法在将 PHP 与 HTML 混合使用时非常流行,通常在模板中。您的代码可能如下所示:

<?php if ( !empty($result) ) : ?>
   <span class="result"><?php echo $result; ?></span>
<?php endif; ?>

请注意,您在<?php if...<?php endif; ?>行之间放置的内容可以是任何内容,包括更多的 php 代码或 html/text。

更多信息:

http://www.php.net/empty

http://www.php.net/manual/en/control-structures.alternative-syntax.php

于 2013-01-03T07:18:46.970 回答
0

一个数组看起来像:

$result= array(); // array defined

$result= ["name","last name"]; // array elements

$result= []; // empty array

如果语法:

    <?php if ( !empty($result) ) : ?>
       hello control in if 
    <?php else: ?>
       in else condition
    <?php endif; ?>

empty(); 要检查的 php 函数在哪里$result没有元素或有元素。

:是一个语法元素。

于 2013-01-03T07:35:38.040 回答
0

这是“if 语句”的替代语法

您可以使用

<?php 
if ($condition):
//some code
else:
// some code
endif;
?>

所以在你的例子中 1 和 2 是如果结果不为空则通过的条件

于 2013-01-03T07:16:11.970 回答