php оставляем соединение с if else, чтобы показать конкретный тег html button - PullRequest
0 голосов
/ 14 марта 2020

привет, я работаю над проектом в социальных сетях, похожим на facebook и instgram. здесь у меня есть 2 таблицы, одна из них - таблица пользователей, а другая - таблица друзей, где в таблице пользователей есть все пользователи, которые когда-либо регистрировались, и в таблице друзей у меня есть отношение запроса дружбы от одного ко многим. все работает нормально. Теперь мое условие: если оба друга уже являются друзьями, то в списке друзей он показывает отправить MSG еще, если нет друзей, то он показывает добавить друга. (чтобы проверить, друзья или нет, у меня есть столбец в mysql дБ, как принять)

вот моя структура БД в списке друзей: -

 friend_id | userid | friendId | accept | response |
 +-----------+--------+----------+--------+----------+
 |         1 |      4 |        1 |      1 |        1 |
 |         2 |      5 |        1 |      1 |        1 |
 |         3 |      2 |        4 |      1 |        1 |

и вот таблица пользователей: -

id | nickname      | email                 | ph_num  | password                         | 
profile_pic                      | status | Created_at          |
+----+---------------+-----------------------+---------+----------------------------------+- 
---------------------------------+--------+---------------------+
|  1 | prasanna      | prasanna@gmail.com    | 12345   | 0a2b75a016a758e08888d66ba244126f | 
1583493901_2020-02-14-110313.jpg |      1 | 2020-03-05 12:52:37 |
|  2 | demo          | demo@d.d              | 1234    | fe01ce2a7fbac8fafaed7c982a04e229 | 
NULL                             |      0 | 2020-03-05 14:15:51 |
|  4 | test          | test@g.g              | 56456   | 098f6bcd4621d373cade4e832627b4f6 | 
1583494768_pic.png               |      0 | 2020-03-06 16:29:43 |
|  5 | one_more_user | onemoreuser@gmail.com | 9988776 | 57bc707659ecf8998c9251b3aae18bd0 | 
NULL                             |      0 | 2020-03-07 14:00:26 |

пробный запрос:

$result = "SELECT u.*, f.friendId, f.userid, f.accept FROM Users u LEFT JOIN friendlist f ON 
u.id = f.userid";
$userlist = mysqli_query($conn, $result);

в то время как l oop:

 <?php
       while ($list = $userlist->fetch_assoc()):?>
        <?php if ($_SESSION['id'] !== $list['id']):?>
        <li class="list-group-item"  >  
       <img class="onlineimg" src="../uploads/<?php echo $list['profile_pic']; ?>"/>
        <?php echo $list['nickname']; ?>
        <?php if ($_SESSION['id'] == $list['friendId']):?>
            <?php if ($list['accept'] ==  '0'):?>
        <p style="display: none" class="selected"><?php echo $list['id']; ?> </p>
        <button class="btn btn-success float-right"><span style="display: none"><?php echo 
       $list['id'] ?> </span> add friend</button>
       <?php endif ;?>
       <?php endif ;?>
        <?php if ($list['accept'] ==  '1'):?>
        <p style="display: none" class="selected"><?php echo $list['id']; ?> </p>
        <button class="btn btn-success float-right"><span style="display: none"><?php echo 
       $list['id'] ?> </span> send message</button>
       <?php endif ;?>
      </li>
    <?php endif ;?>
      <?php endwhile;?>

демонстрационное изображение

На приведенном выше изображении демонстрация пользователя показывает отправку сообщения вместо добавления друга, потому что демонстрация не является другом для прасанны.

пожалуйста, помогите мне пройти через это, я застрял здесь в последние несколько часов. заранее спасибо и извините за мой английский sh грамматик.

1 Ответ

0 голосов
/ 14 марта 2020

В соответствии с вашим кодом logi c единственная возможная помощь - это добавленные комментарии: -

if(session_id == friendID)
{
   if(accept == 0)
  {
    // add friend
  } //you are missing else condition here "what if accept == 1"
} //you are missing else condition here "what if session_id != friendID
//and code below does not belong here at all
 if(accept == 1)
  {
    // send message
  }
...