Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169

Записать данные в таблицу

21.11.2014, 10:56. Показов 1118. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть таблица:
SQL
1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS `private_senders` (
  `uid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `from` INT(2) UNSIGNED NOT NULL,
  `to` VARCHAR(2000) NOT NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Есть задачи:
1. Если в таблице нет отправителя (from), то добавить его и вместе с ним в его же поле получатель to добавить данные to
2. Если в таблице уже есть такой отправитель, но обращаемся к его полю to и смотрим, нет ли такого получается, если нет, то дописываем его через "," иначе прекращаем выполнение кода.
Есть набросок
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include "dbconnect.php";
// Проверка from на пустоту
if (empty($_GET['from'])) {
    die;
}
// Получаем данные из базы
$query = 'SELECT from, to FROM private_senders';
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
// Сразу в переменную добавляем нового to
$to = ''.$query['to'].','.$_GET['to'].'';
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['from']) {
    $query = "UPDATE private_senders SET from = '".$_GET['from']."', to = '".$to."'";
}
// Получаем данные из базы
$query = "SELECT from, to FROM private_senders WHERE from like '%".$_GET['from']."%', to like '%".$_GET['to']."%'";
$result2 = mysql_query($query) or die ("ERROR: ".mysql_error());
// Проверяем нашлось что то, если нет, то добавляем из первой переменной
if (empty($result2['to']) {
    $query = "UPDATE private_senders SET to = '".$to."'";
}
?>
Получаю ошибку:
<br />
<b>Parse error</b>: syntax error, unexpected '{' in <b>C:\Program Files (x86)\AppServ\www\lanm\postprivatesender s.php</b> on line <b>13</b><br />

В PHP разбираюсь не очень
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2014, 10:56
Ответы с готовыми решениями:

Как вывести Excel-таблицу в html и в html таблицу записать данные с БД?
есть у меня excel документ(таблица) , как вывести таблицу в html и в html таблицу записать данные с базы данных

Записать данные из формы в таблицу
Доброго времени суток всем. Есть такой вопрос. На форме есть поле со списком, элементы которого связаны с данными из таблицы...

Транспонировать таблицу и записать данные в шаблон
Всем привет! У меня такая задача: имеем отчёт в виде таблицы 8х57 с цифрами. Таблицу надо транспонировать и записать данные в шаблон....

19
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
21.11.2014, 11:12
Скобку забыли закрыть (empty($result['from']))
PHP
1
2
3
if (empty($result['from']) {
    $query = "UPDATE private_senders SET from = '".$_GET['from']."', to = '".$to."'";
}
Добавлено через 3 минуты
А тут так:
SQL
1
$query = "SELECT * FROM private_senders";
1
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
21.11.2014, 14:32  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include "dbconnect.php";
/** 
// Проверка from на пустоту 
if (empty($_GET['from'])) { 
    die; 
}*/
// Получаем данные из базы
$query = "SELECT * FROM private_senders";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
// Сразу в переменную добавляем нового to
$to = ''.$query['to'].','.$_GET['to'].'';
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['from'])) {
    $query = "UPDATE private_senders SET from = '".$_GET['from']."', to = '".$to."'";
}
// Получаем данные из базы
$query = "SELECT * FROM private_senders WHERE from like '%".$_GET['from']."%', to like '%".$_GET['to']."%'";
$result2 = mysql_query($query) or die ("ERROR: ".mysql_error());
// Проверяем нашлось что то, если нет, то добавляем из первой переменной
if (empty($result2['to'])) {
    $query = "UPDATE private_senders SET to = '".$to."'";
}
?>
Теперь другую ошибку получаю:
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from like '%%', to like '%%'' at line 1
0
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
21.11.2014, 14:41
Цитата Сообщение от Shouldercannon Посмотреть сообщение
$_GET['from']
Не может по get получить значение кажись, проверка то вверху закомментирована
1
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
21.11.2014, 17:42  [ТС]
Да, не посмотрел и допустил ошибку. Задействован POST.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include "dbconnect.php";
// Проверка from на пустоту 
if (empty($_POST['from'])) { 
    die; 
}
// Получаем данные из базы
$query = "SELECT * FROM private_senders";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
// Сразу в переменную добавляем нового to
$to = ''.$query['to'].','.$_POST['to'].'';
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['from'])) {
    $query = "UPDATE private_senders SET from = '".$_POST['from']."', to = '".$to."'";
}
// Получаем данные из базы
$query = "SELECT * FROM private_senders WHERE from LIKE '%".$_POST['from']."%', to LIKE '%".$_POST['to']."%'";
$result2 = mysql_query($query) or die ("ERROR: ".mysql_error());
// Проверяем нашлось что то, если нет, то добавляем из первой переменной
if (empty($result2['to'])) {
    $query = "UPDATE private_senders SET to = '".$to."'";
}
?>
Но ошибка осталась
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from LIKE '%1%', to LIKE '%2
%'' at line 1
0
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
22.11.2014, 07:01
Так это - у тебя атрибут from называется, а это зарезервированное слово в SQL, экранируй
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
22.11.2014, 20:08  [ТС]
Можете поправить? Не разберусь
0
12 / 12 / 6
Регистрация: 15.10.2014
Сообщений: 64
22.11.2014, 20:46
Shouldercannon, лучше вообще измените в базе данных поле "from" на любой синоним(или измените форму слова) и спокойно используйте его в коде.
1
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
22.11.2014, 21:18  [ТС]
Теперь таблица выглядит так
SQL
1
2
3
4
5
6
CREATE TABLE `private_senders` (
  `uid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `ifrom` INT(2) UNSIGNED NOT NULL,
  `sto` VARCHAR(2000) NOT NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
PHP так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include "dbconnect.php";
// Проверка from на пустоту 
if (empty($_POST['ifrom'])) { 
    die; 
}
// Получаем данные из базы
$query = "SELECT * FROM private_senders";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
// Сразу в переменную добавляем нового to
$to = ''.$query['sto'].', '.$_POST['sto'].'';
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['ifrom'])) {
    $query = "UPDATE private_senders SET ifrom = '".$_POST['ifrom']."' sto = '".$to."'";
}
// Получаем данные из базы
$query = "SELECT ifrom, sto FROM private_senders WHERE ifrom LIKE '%".$_POST['ifrom']."%' AND sto '%".$_POST['sto']."%'";
$result2 = mysql_query($query) or die ("ERROR: ".mysql_error());
// Проверяем нашлось что то, если нет, то добавляем из первой переменной
if (empty($result2['sto'])) {
    $query = "UPDATE private_senders SET sto = '".$to."'";
}
?>
И ошибка
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%2%'' at line 1
0
12 / 12 / 6
Регистрация: 15.10.2014
Сообщений: 64
22.11.2014, 21:38
Shouldercannon, а если так?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
include "dbconnect.php";
// Проверка from на пустоту 
if (empty($_POST['ifrom'])) { 
    die; 
}
// Получаем данные из базы
$query = "SELECT * FROM private_senders";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
// Сразу в переменную добавляем нового to
$to = ''.$query['sto'].', '.$_POST['sto'].'';
 
// Сразу в переменную добавляем нового to
$to = ''.$query['sto'].', '.$_POST['sto'].'';
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['ifrom'])) {
    $query = "UPDATE private_senders SET ifrom = '".$_POST['ifrom']."' sto = '".$to."'";
}
$ifrom=$_POST['ifrom'];
$query = "SELECT ifrom, sto FROM private_senders WHERE ifrom LIKE '%{$ifrom}%' AND sto '%{$ifrom}%'";
$result2 = mysql_query($query) or die ("ERROR: ".mysql_error());
// Проверяем нашлось что то, если нет, то добавляем из первой переменной
if (empty($result2['sto'])) {
    $query = "UPDATE private_senders SET sto = '".$to."'";
}
?>
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
22.11.2014, 21:57  [ТС]
Теперь такая ошибка
ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%1%'' at line 1
0
12 / 12 / 6
Регистрация: 15.10.2014
Сообщений: 64
22.11.2014, 22:52
а если так?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
include "dbconnect.php";
// Проверка from на пустоту 
if (empty($_POST['ifrom'])) { 
    die; 
}
// Получаем данные из базы
$query = "SELECT * FROM private_senders";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
// Сразу в переменную добавляем нового to
$to = ''.$query['sto'].', '.$_POST['sto'].'';
 
// Сразу в переменную добавляем нового to
$to = ''.$query['sto'].', '.$_POST['sto'].'';
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['ifrom'])) {
    $query = "UPDATE private_senders SET ifrom = '".$_POST['ifrom']."' sto = '".$to."'";
}
$ifrom=$_POST["ifrom"];
$sto=$_POST["sto"];
$query = "SELECT ifrom, sto FROM private_senders WHERE ifrom LIKE '%{$ifrom}%' AND sto LIKE '%{$sto}%'";
$result2 = mysql_query($query) or die ("ERROR: ".mysql_error());
// Проверяем нашлось что то, если нет, то добавляем из первой переменной
if (empty($result2['sto'])) {
    $query = "UPDATE private_senders SET sto = '".$to."'";
}
?>
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
22.11.2014, 23:26  [ТС]
Так ошибок нет, но и в таблице ничего нет. Не хватает Insert.
Думаю, что это нужно делать здесь
PHP
1
2
3
4
// Если колонка отправителя пустая, то добавим его и его получателей
if (empty($result['ifrom'])) {
    $query = "UPDATE private_senders SET ifrom = '".$_POST['ifrom']."' sto = '".$to."'";
}
0
12 / 12 / 6
Регистрация: 15.10.2014
Сообщений: 64
22.11.2014, 23:54
у вас в самом верху прописано
PHP
1
2
if (empty($_POST['ifrom'])) { 
    die;
это значит, что если нет получателя, то выполнение кода прервётся.
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
22.11.2014, 23:58  [ТС]
Все данные есть. Таблица изначально пустая. Как можно обновить данные у того, чего нет. В PHP есть только процедура обновления (Update), а вставки нет (Insert).
0
12 / 12 / 6
Регистрация: 15.10.2014
Сообщений: 64
23.11.2014, 00:11
пустые данные можно обновить.
У вас в пост переменную что-то заносится или она пустая?
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
24.11.2014, 11:35  [ТС]
Не понял.
PHP
1
2
3
4
5
6
7
8
<?php
include "dbconnect.php";
// Проверка from на пустоту 
if (empty($_POST['ifrom'])) { 
    die; 
}
echo ($_POST['ifrom'])."~".($_POST['sto']);
?>
В ответ приходит 1~2

Dimento
пустые данные можно обновить.
Как можно обновить то, чего нет?
0
12 / 12 / 6
Регистрация: 15.10.2014
Сообщений: 64
24.11.2014, 23:01
Shouldercannon, не знаю как решить вашу проблему. Но вот насчет пустых данных - если переменная есть, а данных в ней нет, это значит что она просто пустая, и при обновлении на свободное место вставляются ваши входящие данные.
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
25.11.2014, 15:58  [ТС]
Небольшой сдвиг. Застрял здесь
PHP
1
echo "Нам прислали"." = ".$result; // Проверка - выводит Resource id #4, что-то неправильно делаю
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include "dbconnect.php";
// Проверка отправителя на пустоту
if (empty($_POST['ifrom'])) { 
    die; 
}
echo "Нам прислали"." = ".$_POST['ifrom']."~".$_POST['sto']; // Проверка
// Ищем ID отправителя
$query = "SELECT * FROM `private_senders` WHERE `ifrom` = '".$_POST['ifrom']."'";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
echo "Нам прислали"." = ".$result; // Проверка - выводит Resource id #4, что-то неправильно делаю
// Проверка на пустоту
if (empty($result)) { 
    // Добавляем отправителя
    $query = "INSERT INTO `private_senders` VALUES (NULL, '".$_POST['ifrom']."', '')";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
} else {
    // Если есть совпадение, то обновляем список получателей
    $query = "UPDATE private_senders SET sto = '".$_POST['sto']."' WHERE `ifrom` = '".$_POST['ifrom']."'";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
}
?>
0
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 169
03.12.2014, 20:14  [ТС]
Финал
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
include "dbconnect.php";
// Проверка на пустоту
if (empty($_POST['to']) || empty($_POST['from'])) {
    die; 
}
$from = rtrim($_POST['from']);
// Получаем ID получателя из таблицы если такой есть
$query = "SELECT `to` FROM `private_senders` WHERE `to` = '".mysql_real_escape_string($_POST['to'])."'";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());
$to = mysql_fetch_array($result);
// Сверяем ID получателя с ID, полученным из таблицы
if ($_POST['to'] == $to['to']) {
    // Если есть совпадение, то обновляем список ID отправителей
    // Получим имеющиеся ID отправителей
    $query = "SELECT `from` FROM `private_senders` WHERE `to` = '".mysql_real_escape_string($_POST['to'])."'";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
    $from2 = mysql_fetch_array($result);
    // Добавим ID присланного отправителя к уже имеющимся
    $from2 = $from2['from'].$from;
    // Удаляем дублекаты
    $from2 = implode(',', array_unique(explode(',', $from2)));  
    // Добавление ID отправителя
    $query = "UPDATE private_senders SET `from` = '".mysql_real_escape_string($from2).",' WHERE `to` = '".mysql_real_escape_string($_POST['to'])."'";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
} else {
    // Добавляем ID получателя и ID отправителя 
    $query = "INSERT INTO `private_senders` VALUES (NULL, '".mysql_real_escape_string($_POST['to'])."', '".mysql_real_escape_string($from).",')";
    $result = mysql_query($query) or die ("ERROR: ".mysql_error());
}
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2014, 20:14
Помогаю со студенческими работами здесь

Записать данные в выбираемую таблицу mysql
Доброго времени суток, подскажите пожалуйста: Есть 3 таблицы - A, B , C В таблицах одинаковые поля - имя, фамилия, отчество. Есть...

Подсчитанные данные из формы записать в таблицу
Добрый день. Есть две таблицы: 1. Таблица пациента. 2. Таблица с датами по этому пациенту. В форме выбираем дату начала...

Как записать данные в таблицу Access
Доброго времени суток уважаемые, мне нужна ваша помощь. Имеется БД, суть в том что мне надо через C# добавить в БД данные, проблемы...

Данные из Combobox записать в таблицу SQL
Добрый день, я только начинаю учиться в Delphi по этому не судите за вопрос ... Сам вопрос. имеется 3-и Combobox, хочу сделать так...

Записать данные с запроса в другую таблицу
Есть запрос: $resp = mysql_query(&quot;select $metode, gruppa from experiment LEFT JOIN pechen ON experiment.id = pechen.kod LEFT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru