@Stung
Программист

Как вывести данные mysql для конкретного пользователя PHP?

Мне нужно вывести данные, которые введет пользователь через форму в Mysql именно на его столбец и вывести все данные, которые он вел, ему на страницу.

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

У меня есть две таблицы:

Таблица - users , где хранится информация пользователей - имя, пароль, аватарка.
Таблица - POSTtable, где сохраняются посты пользователей.
Структура таблицы users - id, fname, username, password.

Структура таблицы POSTtable - id, text, content, image_path.

Файл postzapros.php:

<?php
$conn = mysqli_connect("localhost" , "root" , "", "root");

$sql = "SELECT * FROM POSTtable";
$query = mysqli_query($conn,$sql);

if(isset($_REQUEST['submit'])){
    $text = $_REQUEST['text'];
    $sql = "INSERT INTO POSTtable(text  VALUES ('$text')";
    mysqli_query($conn,$sql);
}

?>

Файл home.php:

<form action="home.php" method="GET" class="formpost" enctype='multipart/form-data'>
                <div class="inputform">
                    <textarea  name="text"  maxlength="305" placeholder="       Добавить запись"></textarea>
                <div class="divs">
                <input type="file"  class="inputs" name="files"  multiple />    
                <i class="fa fa-image fa-2x icons" style="font-size: 1.70em; margin-left: 15em; margin-top: 47px;"></i> 
                <button type="submit" name="submit" >></button>
                
        </div>
    </div>
</form>
  • Вопрос задан
  • 564 просмотра
Решения вопроса 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
1) Читаем документацию:
The enctype attribute can be used only if method="post".

2) Файлы не передаются методом get
3) Делаем выводы из 1 и 2.
4) if(isset($_REQUEST['submit'])) - плохая проверка, начиная с того что я могу отправить форму не нажимая кнопку субмит, и заканчивая тем что такой проверкой вы не знаете какой запрос придет с клиента и что в нем будет (то есть вообще ничего кроме этой сомнительной переменной не проверяете).
5) В данной структуре данных вы никак не можете привязать посты к пользователям. Либо нужно добавить поле, определяющее владельца поста, либо делать пивот таблицу, где записывать соответствия пар юзер-пост.
6) Кроме того - у вас в коде отсутствует какое-либо понятие идентификации пользователей, то есть вы не знаете какой пользователь добавляет или запрашивает данные, что делает бесполезным само понятие принадлежности.
Ответ написан
Комментировать
@AlexVWill
$sql = "SELECT * FROM POSTtable";

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

$sql = "SELECT * FROM POSTtable WHERE id = '".$uid."' ";


где $uid - переменная с ID пользователя
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы