window.location = 'https://www.youtube.com/';
window.document.getElementById('container').innerHtml = 'Your text here';
$stmt = pdo()->prepare("SELECT * FROM `get_package_name` WHERE `name` = :name");
[16-Nov-2022 10:14:44 UTC] PHP Fatal error: Uncaught Error: Call to undefined function pdo() in /home/patedfrb/public_html/faucet/api/v1/index.php:31
Stack trace:
#0 {main}
thrown in /home/patedfrb/public_html/faucet/api/v1/index.php on line 31
[16-Nov-2022 10:14:46 UTC] PHP Fatal error: Uncaught Error: Call to undefined function pdo() in /home/patedfrb/public_html/faucet/api/v1/index.php:31
Stack trace:
#0 {main}
thrown in /home/patedfrb/public_html/faucet/api/v1/index.php on line 31
idselected
array(2) { [0]=> string(9) "1selected" [1]=> string(9) "2selected" }
Что вы получите в 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');