@FXML
void btnBuyClicked(ActionEvent event) {
Number btc_sum = 100000000 / parseFloat(btc_price.getText().toString());
float usd_sum = btc_sum * Integer.parseInt(usd_buy.getText().toString());
float total_buy = 0.00000001 * usd_sum;
float result_sum = float total_buy.getText();
}
private Number parseFloat(String text) {
return null;
}
}
// сообщаем пользователю, что товары не найдены
echo json_encode(array("message" => "Товары не найдены."), JSON_UNESCAPED_UNICODE);
Parse error: syntax error, unexpected 'products' (T_STRING) in /api/models/products.php on line 50
HTTP ERROR 500
А логи на хосте пустые /api/products/readAllCountry.php?country_id=1
вывести те товары которые продаются в стране с id=1 // выбираем все записи по странам где cp.country_id IN (1) это id страны
$query = "SELECT p.name, p.id
FROM products AS p
LEFT JOIN product_country AS cp
ON cp.product_id = p.id
WHERE cp.country_id IN (1)";
// выбираем все записи по странам где cp.country_id IN (2) это id страны
$query = "SELECT p.name, p.id
FROM products AS p
LEFT JOIN product_country AS cp
ON cp.product_id = p.id
WHERE cp.country_id IN (2)";
// выбираем все записи по странам где cp.country_id IN (2) это id страны
$query = "SELECT p.name, p.id
FROM products AS p
LEFT JOIN product_countryNj AS cp
ON cp.product_id = p.id
WHERE cp.country_id IN (1,2)";
product_country
WHERE cp.country_id IN (1 || 2)";
WHERE cp.country_id IN (1 && 2)";
/api/products/readAllCountry.php?country_id=1
product_country
на против в таблице country_id=1
/api/products/readAllCountry.php
вывести только те товары у которых есть напротив в таблице и country_id=1
и country_id=2
то есть все города.product_country
выше если переход на страницу /api/products/readAllCountry.php
должен вывестись только товар с id 1 так как этот товар продается во всех странах в данном случае в двух. А перейдя по ссылке /api/products/readAllCountry.php?country_id=1
я должен получить уже два товара с id=1 и 2 $product->country_id = isset($_GET["country_id"]) ? $_GET["country_id"] : die();
/api/products/readAllCountry.php?country_id=1
и по ссылке /api/products/readAllCountry.php?country_id=2
// метод readCountryIdAll() - получение абсолютно всех товаров которы продаются во всех странах
function readCountryIdAll() {
// выбираем все записи
$query = "select
country.* ,
products.*
from country
join product_country on country.id = product_country.country_id
join products on products.id = product_country.product_id";
// подготовка запроса
$stmt = $this->conn->prepare($query);
// выполняем запрос
$stmt->execute();
return $stmt;
}
/api/products/readAllCountry.php
получаю два раза один и тот же продукт c id1 и один продукт с id2. Всего в бд 2 продукта<?php
// необходимые HTTP-заголовки
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
// подключение базы данных и файл, содержащий объекты
include_once "../config/database.php";
include_once "../models/products.php";
// получаем соединение с базой данных
$database = new Database();
$db = $database->getConnection();
// инициализируем объект
$product = new Product($db);
// запрашиваем товары
$stmt = $product->readCountryIdAll();
$num = $stmt->rowCount();
// проверка, найдено ли больше 0 записей
if ($num>0) {
// массив товаров
$products_arr = array();
$products_arr["records"] = array();
// получаем содержимое нашей таблицы
// fetch() быстрее, чем fetchAll()
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// извлекаем строку
extract($row);
$product_item = array(
"id" => $id,
"name" => $name,
"description" => html_entity_decode($description),
"price" => $price,
"subcategory_id" => $subcategory_id,
"subcategory_name" => $subcategory_name
);
array_push($products_arr["records"], $product_item);
}
// устанавливаем код ответа - 200 OK
http_response_code(200);
// выводим данные о товаре в формате JSON
echo json_encode($products_arr);
} else {
// установим код ответа - 404 Не найдено
http_response_code(404);
// сообщаем пользователю, что товары не найдены
echo json_encode(array("message" => "Товары не найдены."), JSON_UNESCAPED_UNICODE);
}
{"records":[
{"id":"1",
"name":"Sony Noise Cancelling Headphones WHCH710N: Wireless Bluetooth Over the Ear Headset with Mic for Phone-Call, Black","description":"Sony Noise Cancelling Headphones WHCH710N: Wireless Bluetooth Over the Ear Headset with Mic for Phone-Call, Black","price":"98","subcategory_id":"1","subcategory_name":null},
{"id":"1",
"name":"Sony Noise Cancelling Headphones WHCH710N: Wireless Bluetooth Over the Ear Headset with Mic for Phone-Call, Black","description":"Sony Noise Cancelling Headphones WHCH710N: Wireless Bluetooth Over the Ear Headset with Mic for Phone-Call, Black","price":"98","subcategory_id":"1","subcategory_name":null},
{"id":"2",
"name":"PlexDisc DVD-R 4.7GB 16x Branded Logo Recordable Media Disc - 100 Disc (no Container) FFP 632-817-BX","description":"PlexDisc DVD-R 4.7GB 16x Branded Logo Recordable Media Disc - 100 Disc (no Container) FFP 632-817-BX","price":"21","subcategory_id":"2","subcategory_name":null}]}
products_countries (product_id, country_id)
данное решение. Ну как быть если после того как пользователь выберет определенную страну, в ней выводить не все разделы, категории и подкатегории а только те в которых есть продукты относящиеся к выбранной стране? CREATE TABLE IF NOT EXISTS `product_country` (
`product_id` int(11) NOT NULL,
`country_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_shop` (
`product_id` int(11) NOT NULL,
`shop_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_section` (
`product_id` int(11) NOT NULL,
`section_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_category` (
`product_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_subcategory` (
`product_id` int(11) NOT NULL,
`subcategory_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
products
удалить shop_id
, country_id
и subcategory_id
? CREATE TABLE IF NOT EXISTS `product_country` (
`product_id` int(11) NOT NULL,
`country_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_shop` (
`product_id` int(11) NOT NULL,
`shop_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_section` (
`product_id` int(11) NOT NULL,
`section_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_category` (
`product_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_subcategory` (
`product_id` int(11) NOT NULL,
`subcategory_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
products
удалить shop_id
, country_id
и subcategory_id
?
btc_price
может быть и int значение и float?