Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с мульти добавлением php+mysql IMPLODE(); / 14 сообщений из 14, страница 1 из 1
28.01.2015, 19:02
    #38865879
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
Здравствуйте!
У меня возникла проблема и надеюсь вы мне поможете как то её решить.
Суть в том что я хочу произвести запись нескольких строк в базу за 1 запрос, но что то идёт не так и я не пойму что, предоставляю код:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?
include 'konf/kavshiri.php';
$gatamasheba = mysql_query("SELECT * FROM `gatamashebebi` WHERE `id`='1'");
$gat_shedegi = mysql_fetch_array($gatamasheba);
$piradoba='60001055747';
$m_id = 1;
$gat_id = 1;
$sql=array();
$w=1;
while ($w <= $gat_shedegi['b_raodenoba'])
{ 
     $tarigi = date('Y-m-d H:i:s',time() + $w);
     $sql[]= '('.md5($piradoba.$tarigi).','.$tarigi.','.$gat_id.','.$m_id.')';
     $w++; 
}
$zap = implode(',', $sql);
$go = mysql_query("INSERT INTO `biletebi`  (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES $zap");
?>


Код вроде должен работать т.к. проверив запрос простым echo , что бы посмотреть какой запрос выполнит программа

Код: php
1.
echo 'INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES '.implode(',', $sql);



Программа выдаёт результат:

INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES (9448dac5c3450d9edcbc6b481eb56203,2015-01-28 18:59:15,1,1),(8ef69ee009f505ae66bb6e7703f61e29,2015-01-28 18:59:16,1,1),(8fea790abfb8337d2011f5dfe65b69b2,2015-01-28 18:59:17,1,1)

что вроде должно правильно воспроизвестись в запросе, но! ничего не происходит, данные не вводятся, подскажите в чём ошибка и что надо вправить?
...
Рейтинг: 0 / 0
28.01.2015, 19:11
    #38865887
StrongX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
GeoPHP,

Вбей запрос прямо в MySQL ну или через инструменты phpMyAdmin и тд. Бывает помогает при отладке SQL запросов, может в самой структуре БД есть какие нибудь косяки.
...
Рейтинг: 0 / 0
28.01.2015, 19:21
    #38865895
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
GeoPHPПрограмма выдаёт результатА хде кавычки?
...
Рейтинг: 0 / 0
28.01.2015, 19:30
    #38865907
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
vkle,

кавычки тут.
$zap = implode(',', $sql);
$go = mysql_query("INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES $zap");

а тот вывод простой эчо поэтому и без каывчик выдал. в запросе кавычки сами видите присутствуют.


StrongX,

я делал без implode(); вот так

$go = mysql_query("INSERT INTO `biletebi`
(`bileti`,`tarigi`,`gat_id`,`m_id`)
VALUES (100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4')");

запрос проходит без проблем. как видите прописано в ручную без implode(); но как я его за меняю то не работает хотя структура, кавычки и т.п. при запросе такие же и ошибок не выводит.
...
Рейтинг: 0 / 0
28.01.2015, 19:43
    #38865919
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
GeoPHP,

Самое простое - не гадать. Вывести текст готового запроса через var_dump(), который в неизменном виде (в той же переменной) будет передан на выполнение и посмотреть на него. Если проблем не видно - скормить, как писали выше, мускулю через другие средства - консоль или пхпмайадмин. Вывод и внимательное чтение сообщения об ошибке тоже обычно позволяет локализовать проблемное место. Делов - на минуту или две максимум. Однако, не видя конечного результата (текста запроса), над кодом можно медитировать бесконечно долго. Собственно, потому и спросил про кавычки.
...
Рейтинг: 0 / 0
28.01.2015, 19:50
    #38865924
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
vkle,
еще бы взглянуть на длину полей в таблице biletebi
...
Рейтинг: 0 / 0
28.01.2015, 20:19
    #38865936
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
vkle,

точно , чтот не вспомнил про дамп. но там тоже выводится нужный запрос. потом я пересматривал код и заметил такую штуку.

Код: php
1.
2.
3.
4.
5.
6.
7.
while ($w <= $gat_shedegi['b_raodenoba'])
{ 
     $tarigi = date('Y-m-d H:i:s',time() + $w);
     $sql[]= '('.md5($piradoba.$tarigi).','.$tarigi.','.$gat_id.','.$m_id.')';
	 $w++;
	 
}



если заменю на

Код: php
1.
2.
3.
4.
5.
6.
7.
while ($w <= $gat_shedegi['b_raodenoba'])
{ 
     $tarigi = date('Y-m-d H:i:s',time() + $w);
     $sql[]= '(1,1,'.$gat_id.','.$m_id.')';
	 $w++;
	 
}



и начал копаться в этом. после. сделал запрос прямой пхпмайадмин. запрос не прошёл обычный заменил на этот всё прошло.
дальше продолжил и и сделал такой запрос в sql

INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES (1, 20150128201257 ,1,1); то есть я убрал двоеточия и чёрточки и запрос прошёл. не понимаю вроде и с ними всегда проходит. после сделал такой запрос.

INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES (
Код: php
1.
6000bf4fd1b5f9b49fd0d6392caff596

,20150128201257,1,1); то есть вставил мд5 и вот что выдало. запрос не прошёл и


INSERT INTO `biletebi` ( `bileti` , `tarigi` , `gat_id` , `m_id` )
VALUES (

6000bf4fd1b5f9b49fd0d6392caff596, 20150128201257, 1, 1
)
Ответ MySQL: Документация

#1054 - Unknown column '6000bf4fd1b5f9b49fd0d6392caff596' in 'field list'


странности какие то в простом скрипте без массива и с таким же 1м запросом типа

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if(isset($_POST['b_yidva'])){
$tarigi = date('Y-m-d H:i:s');
$bil_nom = md5($piradoba.$tarigi);
if($_POST['b_r']) {$b_raodenoba = mysql_real_escape_string($_POST['b_r']);}


$eq_damateba = mysql_query("INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`)
VALUES('$bil_nom','$tarigi','$gat_id','1')");

}



всё нормально проходит а через массив добавление что то не хочет нормально вводить!
...
Рейтинг: 0 / 0
28.01.2015, 20:21
    #38865938
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
kunaksergey,

id int(10)
m_id int(10)
gat_id int(10)
bileti varchar(255)
tarigi timestamp


вот)
...
Рейтинг: 0 / 0
28.01.2015, 20:31
    #38865945
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
Ребят. ИЗВИНЯЮСЬ! нашёл косяк!

когда vkle меня спросил где кавычки я подумал что он имел ввиду про эти

"INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES (9448dac5c3450d9edcbc6b481eb56203,2015-01-28 18:59:15,1,1),(8ef69ee009f505ae66bb6e7703f61e29,2015-01-28 18:59:16,1,1),(8fea790abfb8337d2011f5dfe65b69b2,2015-01-28 18:59:17,1,1); "

а может вы про эти имели ввиду но я тут присмотрелся и подумал может про другие тоже! потом я пересмотрел код! и посмотрел вот эту часть!

$sql[]= '('.md5($piradoba.$tarigi).','.$tarigi.','.$gat_id.','.$m_id.')';

и нашёл косяк мой! наверное чёт я пересидел перед компьютером и сделал глупую ошибку) я заменил и добавил кавычки тут и получился такой запрос:

$sql[]= '("'.md5($piradoba.$tarigi).'","'.$tarigi.'","'.$gat_id.'","'.$m_id.'")';

после всё заработало! Большое спасибо за отклики и помощь! и извиняюсь за ваше потраченное время!)
...
Рейтинг: 0 / 0
28.01.2015, 20:46
    #38865955
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
GeoPHPдобавил кавычки тут и получился такой запросПолучился такой КОД СОСТАВЛЕНИЯ ЗАПРОСА. А сам запрос Вы нам тут не показываете :-)
...
Рейтинг: 0 / 0
28.01.2015, 21:06
    #38865970
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
vkle,

Да)))) вот весь код и его результаты)))


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
include 'konf/kavshiri.php';

$gatamasheba = mysql_query("SELECT * FROM `gatamashebebi` WHERE `id`='1'");
$gat_shedegi = mysql_fetch_array($gatamasheba);

$piradoba='60001055747';
$m_id = 1;
$gat_id = 1;

$sql=array();
$w=1;


while ($w <= $gat_shedegi['b_raodenoba'])
{ 
     $tarigi = date('Y-m-d H:i:s',time() + $w);
     $sql[]= '("'.md5($piradoba.$tarigi).'","'.$tarigi.'","'.$gat_id.'","'.$m_id.'")';
     $w++;
	 
}
$zap = implode(',', $sql);
$go = mysql_query("INSERT INTO `biletebi`  (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES $zap");



INSERT INTO `biletebi` (`bileti`,`tarigi`,`gat_id`,`m_id`) VALUES ("c1e66d19ca01f918f46b47d6dc1d53ba","2015-01-28 21:02:33","1","1"),("f5190a3c28e1a8d1e0809e79061c61d3","2015-01-28 21:02:34","1","1"),("bf817c343fa507d39919a1d7742e57aa","2015-01-28 21:02:35","1","1");

:)
...
Рейтинг: 0 / 0
29.01.2015, 09:54
    #38866280
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
GeoPHP,

завидую программистам которые будут сопровождать вашу программу:)
очень уж у вас переменные того :)
«Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» :)
...
Рейтинг: 0 / 0
29.01.2015, 10:49
    #38866348
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
GeoPHP,

а ведь ссамого начала написали про кавычки.
...
Рейтинг: 0 / 0
29.01.2015, 13:06
    #38866590
GeoPHP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с мульти добавлением php+mysql IMPLODE();
-k2-,

Этот код буду сопровождать только я) Поэтому такие переменные) P.S. это не придуманные слова) Просто не тот язык)

alex564657498765453,

могли бы ничего и не добавлять) я и так отписался насчёт этого пункта, и сказал что я обратил внимание на другие кавычки а не те которые в массив заносил и давал мне намёк vkle.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проблема с мульти добавлением php+mysql IMPLODE(); / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]