我有这个PHP代码:
<div class="connect_wrap <?php echo $this->class; ?> block" <?php echo $this->cssID; ?>>
<?php if(!$this->empty): ?>
<?php foreach($this->entries as $entry): ?>
<div class="entry block <?php echo $entry->class; ?>">
<div class="tab">
<ul class="tabs">
<li class="tab-link current" data-tab="Kunden">Kunden</li>
<li class="tab-link" data-tab="Loesungen">Lösungen</li>
</ul>
<?php
$this->import('Database');
$pName = $entry->field('name')->value();
$result = \Database::getInstance()->prepare("SELECT * FROM kunden WHERE partner=?")->execute($pName);
?>
<?php if($result->numRows):?>
<div id="Kunden" class="tab-content current">
<?php while($result->next()) { ?>
<div class="items">
<a href="{{env::url}}/kunden-detail/<?php echo $result->alias; ?>">
<div class="logo">
<img src="<?php $objFile = \FilesModel::findByUuid($result->logo); echo $objFile->path;?>"width="180" height="135">
</div>
</a>
</div>
<?php } ?>
</div>
<?php endif;?>
<?php
$this->import('Database');
$pName = $entry->field('name')->value();
$result = \Database::getInstance()->prepare("SELECT * FROM solutions WHERE solution_provider=?")->execute($pName);
?>
<?php if($result->numRows):?>
<div id="Loesungen" class="tab-content">
<?php while($result->next()) { ?>
<div class="items">
<a href="{{env::url}}/synaptic-commerce-solution/<?php echo $result->alias; ?>">
<div class="logo">
<img src="<?php $objFile = \FilesModel::findByUuid($result->logo); echo $objFile->path;?>"width="180" height="135">
</div>
</a>
</div>
<?php } ?>
</div>
<?php endif;?>
</div>
</div>
<?php endforeach; ?>
<?php else: ?>
<?php endif;?>
在该代码中,我有两个数据库查询。我的问题是,如果两个查询都没有数据,则不应显示类“connect_wrap”的div。
我该怎么做?
提前致谢。
答案 0 :(得分:1)
您要检查查询中是否包含数据并且该数据是否为空?如果是这样尝试num_rows
它会返回查询找到/影响的行数,例如检查查询是否返回了一行或多行
if($result->num_rows >= 1) {
//do stuf
} else {
// no result found
}
答案 1 :(得分:0)
向上或最好移动查询执行:不在html内,而是在不同的文件/类中。然后在content_wrap
div:if($kundenResult->num_rows >= 1 || $solutionsResult->num_rows >= 1)
之前添加一项检查。如果你只保留已经拥有的单独检查,只有当其中一个或两个查询返回数据行时,它才会显示content_wrap
div。