php - 将数据保存到数据库后隐藏按钮

标签 php mysql

我创建了一个群组,我想做的是当我加入群组时,加入按钮应该隐藏。但我不知道该怎么做。tbl_group 是已创建组的列表,当您加入组时,id 将保存在 diff 表中。此代码用于显示所有组列表。

group.php

<?php 
  $db = new Group($conn);
  $res = $db->g_viewlist();
  foreach ($res as $key => $value){
?>      
  <div class="col-lg-12" align="center" style="border:1.5px solid #59960b;padding-bottom:10px;padding-top:10px;">
  <button class="btn2 btn-2 join" data-id="<?php echo $value['g_id']; ?>" data-toggle="modal" data-target="#joinModal" style="padding: 2px 2px;margin-left:50%"><strong> Join</strong></button>
                                  
  <img src="./<?php echo $value['g_image']; ?>"class="pull-left" class="img-square" height="70" width="70" alt="Avatar">
  <p align="left">
  <strong class="font-1" style="color:#59960b;"><?php echo $value['g_name'];?>          </strong><br>
  <small style="font-family:courier,'new courier';" class="text">Member Since  2008<br></small>
  <small style="font-family:courier,'new courier';" class="text-muted">Description:<?php echo $value['g_desc']; ?></small><br>
  </p>
</div>
<?php
}
?>

SQL 查询 用于显示所有组列表。

public function g_viewlist(){
    $sql = "SELECT * FROM tbl_group ";
    $result = $this->dbh->prepare($sql);
    $result->execute();
    $data = array();
    while($row = $result->fetch(PDO::FETCH_ASSOC)){
        $data[] = $row;
    }
    return $data;
}

enter image description here 此表是我存储用户 ID 和组 ID 的地方这是一个差异表..假设来自 tbl_group 的 g_id = 25 和来自 tbljoingroup 的 group_id =25 enter image description here

最佳答案

您需要检索组数组,用户是其成员,在您的 foreach 循环中只需搜索此列表即可。如果用户是 $value['g_id'] 的成员,只需使用 continue 跳过循环迭代。

如果您只想隐藏按钮并仍然显示其余代码,请执行以下操作:

<?php 
  $db = new Group($conn);
  $res = $db->g_viewlist();
  foreach ($res as $key => $value) {
?>      
    <div class="col-lg-12" align="center" style="border:1.5px solid #59960b;padding-bottom:10px;padding-top:10px;">
    <?php if (!$user.memberOf($value['g_id'])) { ?>
      <button class="btn2 btn-2 join" data-id="<?php echo $value['g_id']; ?>" data-toggle="modal" data-target="#joinModal" style="padding: 2px 2px;margin-left:50%"><strong> Join</strong></button>
    <?php } ?>

    <img src="./<?php echo $value['g_image']; ?>"class="pull-left" class="img-square" height="70" width="70" alt="Avatar">
    <p align="left">
    <strong class="font-1" style="color:#59960b;"><?php echo $value['g_name'];?>          </strong><br>
    <small style="font-family:courier,'new courier';" class="text">Member Since  2008<br></small>
    <small style="font-family:courier,'new courier';" class="text-muted">Description:<?php echo $value['g_desc']; ?></small><br>
    </p>
  </div>
<?php
}
?>

如果您将用户对象保存在 $user 中,则创建 memberOf() 方法,如果用户是组或 false 否则。

注意:不要在每次执行 memberOf() 时搜索数据库。执行一次并将结果保存在对象的属性中以供重复使用。

关于php - 将数据保存到数据库后隐藏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946721/

相关文章:

php - 在 AppController.php 中编写通用函数与在 Cakephp 中编写组件内有什么区别?

php - SQL 查询中的显示不起作用

php - TinyMCE 可以更新文本但不能更新图像,这是为什么?

php - 日期计算有问题 : error: strtotime() expects parameter 1 to be string, 给定的对象

mysql - 优化 MySql 查询(IN)以避免使用 “Using filesort”

php - 将 jQuery UI Datepicker 选择的日期获取到 PHP session 变量?

php - 替代 file_get_contents?

php - Laravel 仅在数据库表中存储数组的最后一个元素(foreach 循环)

php - 我如何在 MySQL 中组织单个表中的分层数据组?

php - 无法在单页中打开帖子