php - 有没有办法让一个数字在while循环中每次增加1?
问题描述
我有这个功能:
function newMessages() {
global $connection;
$userId = $_SESSION['userId'];
$query = "SELECT * FROM messages WHERE toUserId = '$userId' && messageRead = 'No' ORDER BY date DESC, time DESC";
$selectImageQuery = mysqli_query($connection, $query);
confirmQuery($selectImageQuery);
while ($row = mysqli_fetch_assoc($selectImageQuery)) {
$messageId = escape($row['messageId']);
$message = escape($row['message']);
$fromUsername = escape($row['fromUsername']);
$username = escape($_SESSION['username']);
$date = escape($row['date']);
$time = escape($row['time']);
$query = "SELECT messageCount FROM users WHERE userId = '$userId' ";
$selectCountQuery = mysqli_query($connection, $query);
confirmQuery($selectCountQuery);
while ($row = mysqli_fetch_assoc($selectCountQuery)) {
$messageCount = escape($row['messageCount']);
for ($i = 1; $i<=$messageCount; $i++) {
$messageCount = $i;
echo $messageCount;
echo "
<button type='button' class='btn btn-success' data-toggle='collapse' data-target='#demo$messageCount'>$date / $time - 1 new message from $fromUsername</button>
<div id='demo$messageCount' class='collapse'>
$message
</div><br><br>";
}
}
}
}
第一个 while 循环检查消息并将它们回显出来。然后,我需要找到一种方法,让用户可以点击每一个,只看到那个信息。当前,当用户单击一个时,它们都会打开,因为每个数据目标(当然)都是相同的。所以我在想是否有一种方法可以在每个循环上更改 $messageCount
请帮忙!!!我要疯了
如果我更改for($i = 1; $i<=$messageCount; $i++)
,for($i = 1; $i<=10; $i++)
那么我会收到第一条消息的 10 条,然后是第二条消息的 10 条,依此类推。然而,只有所有的 1 都打开,所以我想这是一个开始。
如果数字(左下)从 1 到 4 就好了
解决方案
我想我已经设法解决了你的问题。问题出在最后for-loop
:
$messageCount = escape($row['messageCount']);
for ($i = 1; $i<=$messageCount; $i++) {
$messageCount = $i;
echo $messageCount;
...
}
在这里你首先得到$messageCount
. 对于此示例,它变为4
. 然后在循环中,$i
变为1
。在您设置的循环内$messageCount
等于$i
,即1
。在下一个“循环回合”中,您检查是否$i
低于或等于$messageCount
。因为两者都是现在1
。循环继续。
您可以通过将上面的 for 循环替换为下面的循环来解决此问题。
for ($i = 1; $i<=$messageCount; $i++) {
$displayMessageCount = $i;
echo $displayMessageCount;
echo "
<button type='button' class='btn btn-success' data-toggle='collapse' data-target='#demo$displayMessageCount'>$date / $time - 1 new message from $fromUsername</button>
<div id='demo$displayMessageCount' class='collapse'>
$message
</div><br><br>";
}
现在您有一个显示计数的单独变量。$messageCount
现在将在每个循环中保持不变。希望这可以帮助!如果没有,请发表评论。
推荐阅读
- excel - 下一个循环显示错误 13 类型不匹配
- javascript - 解析 WKT 字符串以获取点数组
- highcharts - Highcharts/Highstock 将形状/标志添加到多个窗格,而不仅仅是第一个窗格
- python - 如何对时间序列数据运行标准正态同质性检验
- javascript - 变换比例时如何检查元素是否在视口之外
- javascript - 在我的网页密码中包含“&”符号打破密码
- amazon-web-services - AWSIOT Pubsub 模型的开销时间是多少?
- ios - 在ios中显示上传图片的状态
- python - python '\xb4' 编码问题
- c# - 我将枚举作为一对夫妇使用是一种不好的做法吗?