редактирование кнопки отображения проблемы в форме для указанного пользователя c - PullRequest
0 голосов
/ 22 апреля 2020

я сталкиваюсь с проблемой отображения правки, удаляю кнопки для комментариев, принадлежащих этому пользователю ,,, это мой код и не понимаю, где проблема и как ее решить (потому что вот так: кнопки редактирования и удаления будет отображаться для всех комментариев!

$results = mysqli_query($c, "SELECT * from comments where idpub=".$_GET['com']."and iduser=".$_SESSION['id']);
while ($rows = mysqli_fetch_assoc($results)) { 
?>
<?php echo $rows['username'];  ?>
<?php echo $rows['textcom']; ?>

      <a href="comment2.php?edit=<?php echo $rows['id']; ?>" class="edit_btn" >Edit</a>
<a href="pubf.php?del=<?php echo $rows['id']; ?>" class="del_btn">Delete</a>
<?php } ?>```

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Вы должны проверить, вошли ли в систему идентификатор пользователя и идентификатор пользователя комментария, которые добавляют этот комментарий. Если оба идентификатора совпадают, отобразите эти кнопки.

$results = mysqli_query($c, "SELECT * from comments where idpub=".$_GET['com']."and iduser=".$_SESSION['id']);

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

    $results = mysqli_query($c, "SELECT * from comments where idpub=".$_GET['com']);
while ($rows = mysqli_fetch_assoc($results)) { 
?>
<?php echo $rows['username'];  ?>
<?php echo $rows['textcom']; ?>
<?php if($_SESSION['id'] == $rows['userid']){ ?>


<a href="comment2.php?edit=<?php echo $rows['id']; ?>" class="edit_btn" 
>Edit</a>
<a href="pubf.php?del=<?php echo $rows['id']; ?>" class="del_btn">Delete</a>
<?php } }?>
0 голосов
/ 22 апреля 2020

Извините, недостаточно представителей, чтобы оставлять комментарии вместо ответов.

Вы говорите, что на экран вообще ничего не выводится? Кроме того, вам, вероятно, следует очистить те переменные $ _GET и $ _SESSION, которые вы добавляете в $ mysqli, если это не сделано в другом месте кода. В противном случае вы запрашиваете SQL инъекцию.

Вы проверили, что count($rows) возвращает? Может быть, это не дало никаких результатов, тем более что вы вставляете $ _GET ['id'] в строку запроса напрямую. Может привести к несоответствию типа или синтаксической ошибке.

Например, предположим, $_GET[‘id’] === ‘asdf’. Тогда этот фрагмент строки запроса будет idpub=asdf, что явно является синтаксической ошибкой SQL, поэтому запрос не будет выполнен, и у вас не будет строк для повторения.

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