我正在开展一个学校项目,人们可以在那里出售房屋并购买房屋。我试图做一个最喜欢的"功能,但第一步不是100%工作。第一步是如果用户将房子保存为收藏,如果用户没有将房子保存为收藏,则心脏会变红,心脏应为灰色。
这是我在while循环中使用的代码,其中所有房屋都将返回,因此$ detailsHuis [' id']来自while循环。
<?php
$huisid = $detailsHuis['id'];
$getFavoriet = "SELECT * FROM favoriet WHERE persoon_id = $gebruikerid AND huis_id = $huisid";
$dataFavoriet = mysqli_query($con, $getFavoriet) or die(mysqli_error($con));
?>
<?php while($detailsFavoriet = mysqli_fetch_assoc($dataFavoriet)): ?>
<?php if($getFavoriet || mysqli_num_rows($getFavoriet) > 0): ?>
<span class="favorite" style="margin-top: 0px; color: #f44336;"><i class="fa fa-heart" style="margin-right: 0px;"></i></span>
<?php else: ?>
<span class="favorite" style="margin-top: 0px;"><i class="fa fa-heart" style="margin-right: 0px;"></i></span>
<?php endif; ?>
<?php endwhile; ?>
当mysqli_num_rows高于0时,我看到房屋信息旁边有一颗红心,但当mysqli_num_rows低于0时,我看到房屋信息旁边没有心脏。
$ con在config.php中创建
$con = mysqli_connect("localhost","root","kerimbjk","huizenverkoop");
if (!$con) {
echo "Kan geen verbinding maken met MySQL" . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
如果有人可以帮我解决这个问题,我会很高兴。
编辑: 表(favoriet):
+--------------------------+
| id | huis_id | persoon_id|
| 1 | 4 | 2 |
| 2 | 6 | 4 |
+--------------------------+
表(huis)(完整版:http://prntscr.com/bk5zkl):
+------------------------+
| id | prijs | stad |
| 1 | 146521| Amsterdam |
| 2 | 125932| London |
+------------------------+
表(persoon):
+-----------------------+
| id |username|password |
| 1 | test123|encrypted|
| 2 | demo |encrypted|
+-----------------------+
favoriet意味着最爱,huis意味着家,prijs意味着价格,stad意味着城市,persoon意味着人。
我的&#34;房子&#34;循环,你也可以看到&#34;最喜欢的&#34;环。 由于某种原因,我无法通过整个代码,所以这里是:http://pastebin.com/Ld2rqcQX
答案 0 :(得分:0)
一些问题:
favoriet
表。favorite
是否是最喜欢的,而您应该逻辑上只申请收藏。连接到:不要再添加颜色样式。该颜色应在favorite
类中定义。$gebruikersid
。这不是你应该怎么做的。而是使用prepared statement并单独传递参数。以下是一些可用于解决上述问题的未经测试的代码:
<?php
$detailsSql =
"SELECT huis.*, favoriet.id AS fav_id
FROM huis
LEFT JOIN favoriet ON favoriet.huis_id = huis.id
WHERE favoriet.persoon_id = ?";
$stmt = mysqli_prepare($con, $detailsSql) or die(mysqli_error($con));
mysqli_stmt_bind_param($stmt, "i", $gebruikerid);
mysqli_stmt_execute($stmt);
$detailsRes = mysqli_stmt_get_result($stmt);
while ($detailsHuis = mysqli_fetch_assoc($detailsRes)): ?>
<div class="item overzicht-item">
<!-- ... etc ... -->
<span class="<?php echo $detailsHuis['fav_id'] ? 'favorite' : '' ?>"
style="margin-top: 0px;">
<i class="fa fa-heart" style="margin-right: 0px;"></i>
</span>
<!-- ... etc ... -->
</div>
<?php endwhile; ?>
... etc ...
部分可以像您一样保留。