Жизнь злодейка заставила меня разбираться с MySQL В общем, надо составить базу данных. В базе создается таблица с введённым из формы номером.
С этим я успешно покончил и даже полностью это осознал.
Теперь надо в форме ввести два соответствующих числа до 10 раз: 1)На какой номер указывает(от 1 до 699) 2)Расположение указателя (условная система координат из 1-2-...-9-a по X и 1-2-...-6 по Y)
(указателей может быть несколько, не известно сколько)
Как записывать, разницы не имеет, главное, чтобы в базе данных хранился указатель и его расположение
Мне казалось, что было бы крайне легко использовать две формы и вводить с новой строки данные для каждого указателя. В одной форме - куда указывает, в другой - где находится. Ну и эти данные разбить на строки и в массив загнать
Система у меня работает так: сначала записывает несколько значений "куда" в один столбец, потом записывает "где находится" в другой, но не от начала, а начинает с того места, где закончилось "куда" (в принципе, я уже потом понял, что так и должно быть, но сначала не догадывался)
Пытался придумать, как значения "где находится" вставлять обновлением, но там совсем всё страшно и не получается таким же способом их вставлять(обновлять)
Код:
<?php
$Link = mysql_connect('localhost', '******', '****');
if(!$Link) echo "Не удалось подключится к серверу";
else
{
mysql_select_db('*****');
$LO = 'a'.$_POST['LO'];
$nl_char="\n";
$arr1=explode($nl_char,$_POST['to']);
$arr2=explode($nl_char,$_POST['map']);
$sql = "CREATE TABLE $LO (VedetK VARCHAR(3) CHARACTER SET utf8 NOT NULL, Location VARCHAR(2) CHARACTER SET utf8 NOT NULL)";
if (mysql_query($sql))
echo "Создание таблицы завершено \n";
else
echo "Таблицу создать не удалось \n";
$query1 = "INSERT INTO $LO (VedetK) VALUES (" . implode("), (", $arr1) . ")";
if (mysql_query($query1))
echo "всатвка удалась \n";
else
echo "не получилось вставить \n";
$query2 = "UPDATE $LO (Location) VALUES (" . implode("), (", $arr2) . ")";
if (mysql_query($query2))
echo "всатвка 2 удалась \n";
else
echo "не получилось вставить 2 \n";
}
?>
Была идея объединить массивы с помощью array_combine, но дальнейшие действия у меня уже покрыты тайной, потому как не имею представления о вставке таких данных
В принципе, без разницы как записывать в формы ввода эти данные, можно хоть "куда","где", просто тут тоже не понимаю плана действий в дальнейшем
Поэтому прошу помощи с любым вариантом внесения сразу двух этих параметров в базу данных (либо сначала одного, а потом другого с первой строчки) Альтернативный вариант: Как внести сразу два этих параметра (и как лучше настроить форму получения(в одной форме получать два параметра или в разных)), как внести сразу два параметра несколько раз?
Гугление не сильно помогло со всем этим (Про безопасность и прочее лучше не упоминать, делается для личного и, в основном, разового использования)
Например так
<?php
$Link = mysql_connect('localhost', '******', '****');
function insert($insData)
{
$columns = implode(", ", array_keys($insData));
$escaped_values = array_map('mysql_real_escape_string', array_values($insData));
$values = implode(", ", $escaped_values);
$sql = "INSERT INTO `table_name` ($columns) VALUES ($values)";
mysql_query($sql);
}
if(!$Link) echo "Не удалось подключится к серверу";
else
{
mysql_select_db('*****');
$LO = 'a'.$_POST['LO'];
$nl_char="\n";
$arr1=explode($nl_char,$_POST['to']);
$arr2=explode($nl_char,$_POST['map']);
$sql = "CREATE TABLE $LO (VedetK VARCHAR(3) CHARACTER SET utf8 NOT NULL, Location VARCHAR(2) CHARACTER SET utf8 NOT NULL)";
if (mysql_query($sql))
echo "Создание таблицы завершено \n";
else
echo "Таблицу создать не удалось \n";
if(count($arr1) != count($arr2)) {
echo "массивы разного размера!";
exit();
}
foreach ($arr1 as $key=>$value){
$data = [
'VedetK' => $arr1[$key],
'Location' => $arr2[$key],
];
insert($data);
}
if (mysql_query($query2))
echo "всатвка 2 удалась \n";
else
echo "не получилось вставить 2 \n";
}
?>
Вот пример стандартного синтаксиса на вставку
INSERT INTO TABLE1(COLUMN1, COLUMN2, ....) VALUES (VALUE1, VALUE2..)
Обычно сначала мы подготавливаем массив вида
$insData = [
'Location' => 'некое значение 1',
'VedetK' => 'некое значение 2',
........
]
Где ключи массива - это имена полей в таблице, а его значения - те значения, которые мы хотим вставить в таблицу.
Затем мы производим вставку следующим образом
$columns = implode(", ",array_keys($insData));
$escaped_values = array_map('mysql_real_escape_string', array_values($insData));
$values = implode(", ", $escaped_values);
$sql = "INSERT INTO `table_name` ($columns) VALUES ($values)";
mysql_query($sql)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости