#php #sql
#php #sql
Вопрос:
Я использую следующий запрос для отображения записей путем объединения данных формы с данными изображения.
SELECT * FROM soccer JOIN soccerimages ON soccer.id = soccerimages.id ORDER BY soccer.id
При этом отображаются все записи, данные формы с одним изображением, но как мне отобразить запись только для вошедшего в систему пользователя? Мне нужно сделать это закрытым, чтобы избежать проблем с авторским правом, например, если пользователи загружают изображения с веб-сайтов. Зарегистрированный пользователь сохраняется в переменной сеанса
$user = $_SESSION['UserName'];
Я устал
SELECT * FROM tcgsoccer JOIN tcgsoccerimages ON tcgsoccer.id = tcgsoccerimages.id ORDER BY tcgsoccer.id `WHERE '$user'='$user'`
Но я получаю синтаксические ошибки. Я не понимаю, как структурировать запрос? Я тестирую его в phpmyadmin, поэтому удалил ;
Комментарии:
1. Удалите кавычки для первого ($user)
WHERE '$user'='$user'
, поэтомуWHERE user='$user'
предположимuser
, что это ваше имя столбца.2. Переменная сеанса $user не является. Я объединил таблицы по их идентификаторам столбцов.
3. создайте хранимую процедуру, которая принимает @user в качестве переменной, вызовите хранимую процедуру из вашего php-кода, передав $user в качестве параметра.
4. Синтаксис
WHERE column = 'something'
—$user
это не столбец, это переменная, и столбец не должен быть заключен в кавычки. Здесь => tutorialspoint.com/mysql/mysql-where-clause.htm — Добавление отчетов об ошибках в начало вашего файла (файлов)error_reporting(E_ALL); ini_set('display_errors', 1);
сигнализировало бы об ошибке.5. Я использую сообщение об ошибке error_reporting (E_ERROR); Я не знаю, как структурировать запрос.
Ответ №1:
$query = "SELECT *
FROM tcgsoccer
JOIN tcgsoccerimages ON tcgsoccer.id = tcgsoccerimages.id
ORDER BY tcgsoccer.id
WHERE user = '" . $user ."'";
Комментарии:
1. Это дает «У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘WHERE user = «‘ в строке 2». Я также удалил пробелы, но это выдало ту же ошибку.