|
|
|
| написал вот такое вот, но не работает. не вностится информация
таблица city
id_city smallint(10) unsigned auto_increment
city varchar(25)
country_id tinyint(5) unsigned
PRIMARY KEY(id_city),
FOREIGN KEY (country_id)
ENGINE=InnoDB CHARACTER SET=UTF8
таблица: country
country_id tinyint(5) unsigned auto_increment
country_name varchar(255)
PRIMARY KEY(country_id),
ENGINE=InnoDB CHARACTER SET=UTF8
<?php
include('connect.php');
$county = $_POST['country_id'];
mysql_query("INSERT INTO `city`(`city`, `country_id`) VALUES ('".$_POST['city']."', '$county')");
?>
<form action="into.php" method="post">
<input type="text" name="city">
<select><?
$sites = mysql_query("SELECT * FROM `country` ");
while ($row = mysql_fetch_array($sites)) {
echo "<option name='".$row['country_id']."'>".$row['country_name']."</option>";
}
?></select>
<input type="submit" name="go" value="внести">
</form>
|
| |
|
|
|
|
|
|
|
для: davidoff_72
(21.07.2015 в 20:54)
| | Напишите текст и номер ошибки. | |
|
|
|
|
11.9 Кб |
|
|
для: Rolex
(22.07.2015 в 16:29)
| | одно поле текстовое в него вносится фамилия сотрудника а из выпадающего списка достается его должность (смотреть в прикрепленном файл). Оба значения отправляются из одной формы. Не могу понять как значение из выпадающего списка засунуть в $_POST, а может каким то другим способом...
Таблицы innodb, вязаны внешним ключем, проиндексированы.
а ошибку никакую не выдает. просто не вносит информацию и всё. | |
|
|
|
|
|
|
|
для: davidoff_72
(21.07.2015 в 20:54)
| | в переменной $sites находится вся таблица country затем выделаете while и.... Какую запись таблицы выберет mysql_fetch_array()?
Затем отправляете post
закоментите строку
<?php
mysql_query("INSERT INTO `city`(`city`, `country_id`) VALUES ('".$_POST['city']."', '$county')");
|
и напишите
<?php
echo "INSERT INTO `city`(`city`, `country_id`) VALUES ('".$_POST['city']."', '$county')";
|
....И зачем этот круговорот из city и country ?
З.Ы. что бы разобрать кашу из html+php+(что то еще) каждый раз нужно отправляться в самадхи. | |
|
|
|
|
|
|
|
для: indexer
(23.07.2015 в 10:47)
| | а как мне добится результата не отправляясь в самадхи? просто чтоб к фамилии сотрудника прикреплялась название должности из выпадающего спика | |
|
|
|
|
|
|
|
для: davidoff_72
(21.07.2015 в 20:54)
| | Люди помогите! подскажите! Спасибо | |
|
|
|
|
|
|
|
для: davidoff_72
(26.07.2015 в 14:43)
| | примерно так:
<?php
include('connect.php');
if ($_POST)
{
$city = isset($_POST['city']) ? mysql_real_escape_string(trim($_POST['city'])) : null;
$country_id = isset($_POST['country_id']) ? (int)$_POST['country_id'] : null;
if ($city && $country_id)
{
mysql_query("INSERT INTO `city`(`city`, `country_id`) VALUES ('$city', $country_id)");
}
}
?>
<form method="post">
<input type="text" name="city">
<select name="country_id">
<?php
$sites = mysql_query("SELECT * FROM `country`");
while ($row = mysql_fetch_array($sites))
{
echo "<option value='" . $row['country_id'] . "'>" . $row['country_name'] . "</option>";
}
?>
</select>
<input type="submit" name="go" value="внести">
</form>
|
| |
|
|
|
|
|
|
|
для: Igorek
(26.07.2015 в 16:08)
| | Спасибо!
Я пропустил элементарную вещь - name для select . остальное мне не все понятно, но вставил - работает. Буду разбираться.
Интересно, это единственный метод или бывают какие то альтернативные?
Спасибо | |
|
|
|
|
|
|
|
для: davidoff_72
(27.07.2015 в 21:43)
| | > Интересно, это единственный метод или бывают какие то альтернативные?
о каком методе идет речь? | |
|
|
|
|
|
|
|
для: Igorek
(27.07.2015 в 22:07)
| | Ну если надо внести данные в таблицу с множестовм внешних ключей. Допустим форма для внесения сотрудника, в ней, текст для внесения произвольной информации (типа комментарий) а так же стандартизированная (из справочников): город, должность, пол, и т.д.
Достаточно адаптировать ваш скрипт? | |
|
|
|
|
|
|
|
для: davidoff_72
(27.07.2015 в 22:20)
| | Не совсем понимаю проблемы. Внешний ключ дает нам ограничение внешнего ключа (foreign key constraint) для обеспечения целостности БД, т.е. на вашем примере - вы не сможете добавить значение country_id в таблицу city такое, которого нет в таблице country, как и не сможете удалить из country строку, если для её country_id есть соответствующие записи в city. Если вам необходимо будет обновить обе таблицы с добавлением нового country_id, то не обходимо будет соблюдать очередность - сначала добавляем значение в country, и потом только в city (для удаления - наоборот, либо использовать правила ON DELETE CASCADE). Вот в общем и все заморочки с внешними ключами.
По поводу формы - не важно какая она будет и откуда будут браться данные в нее. Ваша задача как программиста - получить данные (из $_POST массива в большинстве случаев), подготовить их для записи в БД (валидация, санитизация), и выполнить 1+ INSERT'ов.
> Достаточно адаптировать ваш скрипт?
можно и так, можно использовать готовые фреймворки, библиотеки и т.д. Рекомендую на первых порах все делать самому. Только не использовать расширение mysql(оно уже давно deprecated), почитать про валидацию, экранирование данных, понять что происходит когда пользователь жмет кнопку отправить вашей формы и т.д. | |
|
|
|
|
|
|
|
для: Igorek
(29.07.2015 в 07:48)
| | Спасибо. Я не программист. Это у меня увлечение, трачу два часа в неделю на изучение. Нравится и мечтаю сделать программу для своей работы.
К сожалению не всё понимаю, и не далеко не все доходит то что написано в мануале. например - - для меня не совесем понятно что делает.
Начинать изучать mysqli ? | |
|
|
|
|
|
|
|
для: davidoff_72
(29.07.2015 в 21:42)
| | > Начинать изучать mysqli ?
Лучше PDO
mysql_real_escape_string - экранирует специальные символы. Если в переменной содержатся кавычки(например), то велика вероятность, что запрос станет синтаксически некорректным, либо станет небезопасным(SQL-инъекция).
<?php
$username = "Garry O'Konnor"; // одинарная кавычка!
$sql = "SELECT * FROM table_name WHERE username = '$username'";
mysql_query($sql); // mysql ругнется здесь
$username = mysql_real_escape_string("Garry O'Konnor");
$sql = "SELECT * FROM table_name WHERE username = '$username'";
mysql_query($sql); // теперь все хорошо. Перед одинарной кавычкой добавлен экранирующий символ (обратный слэш)
|
примеров с sql-инъекциями полно в интернете, включая официальный мануал для этой функции | |
|
|
|
|
|
|
|
для: Igorek
(30.07.2015 в 20:47)
| | все таки не могу разобрать - почему знак вопроса между констуркциями, почему двое точие null?
<?php
include('connect.php');
if ($_POST)
{
$city = isset($_POST['city']) ? mysql_real_escape_string(trim($_POST['city'])) : null;
$country_id = isset($_POST['country_id']) ? (int)$_POST['country_id'] : null;
if ($city && $country_id)
{
mysql_query("INSERT INTO `city`(`city`, `country_id`) VALUES ('$city', $country_id)");
}
}
?>
|
Уважаемые программисты, не ругайте сильно! | |
|
|
|
|
|
|
|
|
для: Igorek
(07.08.2015 в 17:52)
| | Спасибо. Чувствую что понимаю, но сам написать не смогу, если надо будет. | |
|
|
|