Я хочу сделать страницу для администратора моего магазина, которая показывает заказы на тот или иной товар.
У меня уже есть все заказы и продукты, в которых есть столбец «ссылки», который является уникальным. Я попытался выполнить приведенный ниже запрос, но он показывает все продукты плюс запрошенный продукт, отображая дополнительную строку. Я просто хочу, чтобы отображались заказы на конкретный продукт. $ _REQUEST [ ‘ProductID’]; получает идентификатор продукта на основе страницы администратора, на которой отображаются все продукты в списке, и эта информация успешно извлекается.
$reference = $_REQUEST['productid'];
mysqli_query($db,"SELECT * FROM products INNER JOIN orders ON orders.reference='".$reference."'");
Любая помощь приветствуется.
Ваш запрос имеет только объединение, в нем отсутствует выражение WHERE:
$reference = $_REQUEST['productid'];
mysqli_query($db,"SELECT *
FROM products
INNER JOIN orders
ON orders.reference='".$reference."'
WHERE products.id = '".$reference."'");
Кроме того, поскольку вы хотите получить только заказы, вы можете переписать его следующим образом:
$reference = $_REQUEST['productid'];
mysqli_query($db,"SELECT orders.*
FROM orders
INNER JOIN products
ON orders.reference=products.id
WHERE products.id = '".$reference."'"GROUP BY orders.id);
Теперь это правильное соединение, поскольку оно сопоставляет два поля из двух таблиц. Кроме того, поскольку заказ может иметь две ссылки на один и тот же продукт, я добавил необязательный оператор GROUP BY, чтобы каждый отдельный заказ отображался только один раз (просто удалите эту часть, если в этом нет необходимости).
Я просто хочу, чтобы заказы на конкретный продукт были запрошены
отображается
Ты не хочешь этого?
$reference = mysqli_real_escape_string($db, $_REQUEST['productid']);
mysqli_query($db, "SELECT * FROM orders WHERE reference = " . $reference);