Прекратить показ строки после нажатия на URL.PHP MYSQLI - PullRequest
0 голосов
/ 11 октября 2018

Я создаю веб-сайт, где пользователи могут публиковать ссылки и взаимодействовать с ними.

Всем пользователям показана таблица со всеми ссылками пользователей.

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

. Я сделал следующее.

У меня есть таблица (пользователи), в которой находятся все пользователи.сохранен.

Table1 (users):
----------------
| id | username |
----------------
|  1 |  user1   |
----------------
|  2 |  user2   |
----------------
|  3 |  user3   |
----------------

Это вторая таблица, в которой хранятся все ссылки

Table2 (links):
----------------
| id | urls |
----------------
|  1 |  url1   |
----------------
|  2 |  url2   |
----------------
|  3 |  url3   |
----------------

Теперь предположим, что (USER2 из таблицы 1 (пользователи)) нажали на следующие ссылки (URL1и URL2 таблицы2 (ссылки)).

Когда пользователь нажимает на URL, в третьей таблице сохраняются следующие значения следующим образом:

Table3 (blockuser):
-----------------------
| id | idLinks | users |
-----------------------
|  1 |    1    | user2 |
------------------------
|  2 |    2    | user2 |
-----------------------

Теперь мне нужна таблицакоторый содержит все ссылки, которые будут показаны каждому пользователю следующим образом.Вот чего я хочу добиться:

        User1:                    User2:                   User3:
--------------------      --------------------     --------------------
| TABLE: ALL LINKS |      | TABLE: ALL LINKS |     | TABLE: ALL LINKS |
--------------------      --------------------     --------------------
|  ID   |  URLS    |      |  ID   |  URLS    |     |  ID   |  URLS    |
--------------------      --------------------     --------------------
|  1    |  url1    |      |  3    |  url3    |     |  1    |  url1    | 
--------------------      --------------------     --------------------
|  2    |  url2    |                               |  1    |  url2    |
--------------------                               --------------------
|  3    |  url3    |                               |  1    |  url3    |
--------------------                               --------------------

И вот чего я смог достичь.

        User1:                    User2:                   User3:
--------------------      --------------------     --------------------
| TABLE: ALL LINKS |      | TABLE: ALL LINKS |     | TABLE: ALL LINKS |
--------------------      --------------------     --------------------
|  ID   |  URLS    |      |  ID   |  URLS    |     |  ID   |  URLS    |
--------------------      --------------------     --------------------
|  3    |  url3    |      |  3    |  url3    |     |  3    |  url3    | 
--------------------      --------------------     --------------------

То есть, когда пользователь нажимает на ссылку, ссылкабольше не отображается для всех пользователей.

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

Это код, который я должен показать в таблице:

SELECT
    *
FROM
    links
LEFT JOIN
    blockuser ON blockuser.idLinks = links.id
WHERE
    blockuser.idLinks IS NULL

1 Ответ

0 голосов
/ 11 октября 2018

Почему вы «ДОЛЖНЫ» использовать SQL для отображения таблицы?

SELECT
    *
FROM
    links
LEFT JOIN
    blockuser ON blockuser.idLinks = links.id
WHERE
    blockuser.idLinks IS NULL

В основном используйте подзапрос:

SELECT *
FROM links
WHERE id NOT IN
      (SELECT idLinks FROM blockuser WHERE idUsers = 2)

или

SELECT *
FROM links
WHERE id NOT IN
      (SELECT idLinks FROM blockuser WHERE users = 'user2')

Пользователь1

Пользователь2

Пользователь3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...