Что вы получите в country_id на стороне сервера, если он будет передан как country_id[] ?id стран
<form id="data" class="sign-up-form form" action="do_addfaucets" method="post">
<label class="form-label-wrapper">
<p class="form-label">Faucet Category</p>
<select name="category_id" form="data">
<?php
// Получим данные категорий
$stmt = pdo()->prepare("SELECT * FROM `categories`");
$stmt->execute();
foreach($stmt as $row){
echo "<option value=". $row["id"] . "selected>" . $row["name"] . "</option>";
}
?>
</select>
</label>
<label class="form-label-wrapper">
<p class="form-label">Faucet Name</p>
<input class="form-input" type="text" placeholder="Enter name faucet" id="name" name="name" required>
</label>
<label class="form-label-wrapper">
<p class="form-label">Faucet Url</p>
<input class="form-input" type="text" placeholder="Enter faucet url" id="url" name="url" required>
</label>
<label class="form-label-wrapper">
<p class="form-label">Faucet Time</p>
<input class="form-input" type="text" placeholder="Enter faucet time" id="time" name="time" required>
</label>
<button class="form-btn primary-default-btn transparent-btn">Add</button>
</form>
var_dump($country_id);
результат NULL
<form class="sign-up-form form" action="do_addshop.php" method="post">
<label class="form-label-wrapper">
<p class="form-label">Faucet Category</p>
<select name="country_id[]" form="data" multiple>
<?php
// Получим данные категорий
$stmt = pdo()->prepare("SELECT * FROM `country`");
$stmt->execute();
foreach($stmt as $row){
echo "<option value=". $row["id"] . "selected>" . $row["name"] . "</option>";
}
?>
</select>
</label>
<label class="form-label-wrapper">
<p class="form-label">Name Shop</p>
<input class="form-input" type="text" placeholder="Enter name shop" id="name" name="name" required>
</label>
<label class="form-label-wrapper">
<p class="form-label">Image Url</p>
<input class="form-input" type="text" placeholder="Enter img url" id="img" name="img" required>
</label>
<button class="form-btn primary-default-btn transparent-btn">Add</button>
</form>
array(3) { [0]=> string(5) "00000" [1]=> NULL [2]=> NULL }
// Добавим магазин в базу
$stmt = pdo()->prepare("INSERT INTO `shop` (`name`, `img`) VALUES (:name, :img)");
$stmt->execute([
'name' => $_POST['name'],
'img' => $_POST['img'],
]);
$stmt = pdo()->lastInsertId();
$shop_id_inserted = $stmt;
<?php
require_once __DIR__.'/boot.php';
$conn; // для соединения нужно назначить режим NO_AUTO_COMMIT, чтобы при каждом выполнении запроса не происходило фиксации транзакции, пока не будет выполнена вся цепочка запросов, чтобы соблюсти консистентность данных
// Проверим, не занято ли название
$stmt = pdo()->prepare("SELECT * FROM `shop` WHERE `name` = :name");
$stmt->execute(['name' => $_POST['name']]);
if ($stmt->rowCount() > 0) {
flash('Этот магазин уже существует.');
header('Location: addshop.php'); // Возврат на форму регистрации
die; // Остановка выполнения скрипта
}
// Добавим магазин в базу
$stmt = pdo()->prepare("INSERT INTO `shop` (`name`, `img`) VALUES (:name, :img)");
$stmt->execute([
'name' => $_POST['name'],
'img' => $_POST['img'],
]);
$stmt = pdo()->prepare("SELECT * FROM `shop` WHERE `id` = :id");
$stmt->execute();
$shop_id_inserted = $stmt; /*считать вставленный id записи из shop, метод зависит от вида СУБД */
// убеждаемся, что пост-параметр country_id существует, он массив, и в нем есть элементы
if(isset($_POST['country_id']) && is_array($_POST['country_id']) && count($_POST['country_id']) > 0)
{
foreach($_POST['country_id'] as $country_id)
{
// вставляем категории в промежуточную таблицу для хранения выбранных категорий
$stmt = pdo()->prepare("INSERT INTO `country_shop` (`shop_id`, `country_id`) VALUES (:shop_id, :country_id)");
$stmt->execute([
'shop_id' => $shop_id_inserted,
'country_id' => $country_id]);
}
$conn->query('commit'); // все категории вставили, консистентность данных достигнута, можно фиксировать транзакцию
}
else
{
$conn->query('rollback'); //нет выделенных категорий, если они обязательны, то нужно откатить вставку записи в таблицу faucets. Если нет, то else нужно не использовать
// генерируем сообщение об ошибке, если нужно
}
header('Location: allshop.php');
id_subcategory
@FXML
void btnBuyClicked(ActionEvent event) {
float btc_sum = 100000000 / String.valueOf(btc_price.getText());
float usd_sum = Float.valueOf(btc_sum) * Integer.parseInt(usd_buy.getText());
Float total_buy = (float) (0.00000001 * usd_sum);
if (((String) btc_price).matches("[0-9]*\\.[0-9]*")) {
// float: 3.13
} else {
// int: 313
}
System.out.println(usd_sum);
result_sum.setText(String.valueOf(total_buy));
}
20159
во второе 13
я получаю результат zero
а должен 0,00064487
int btc_sum = 100000000 / Integer.parseInt(btc_price.getText());
int usd_sum = Integer.valueOf(btc_sum) * Integer.parseInt(usd_buy.getText());
Float total_buy = (float) (0.00000001 * usd_sum);
System.out.println(usd_sum);
result_sum.setText(String.valueOf(total_buy));
btc_price
может быть и int значение и float? @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;
}
}