[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Два запроса в коде вместо одного
Antiment
Приветствую участников проекта.
Столкнулся с проблемой,которую не всилах сам решить.
После изминения структуры базы,а точнее нескольких таблиц,в коде php теперь надо делать не один,а два запроса.
Вот сам код:
  if($set!=0){
$r=0;
foreach($item_guid as $i ){
$result = mysql_query("INSERT INTO mail_items (mail_id,item_guid,item_template,receiver)
VALUES (
$mail_id, '$i', '$set[$r]','$to')");
$r++;
}
}
else

if
($has_items) {
//selectDb('characters');
$result = mysql_query("INSERT INTO mail_items (mail_id, item_guid, item_template, receiver)
VALUES ("
.$mail_id.", ".$item_guid.", ".$item.", ".$to.")");
}

if ($result) {
return $mail_id;
} else {
return 0;
}
}


А теперь вместо каждого из запросов,нужно делать два,чтоб было все правильно.Вот какие запросы нужно делать теперь:
это к верхней части
INSERT INTO mail_items (mail_id,item_guid,receiver) VALUES ($mail_id, '$i','$to');
INSERT INTO item_instance (guid,itemEntry,receiver) VALUES ('$i', '$set[$r]','$to');

а это к нижней
INSERT INTO mail_items (mail_id, item_guid, receiver) VALUES (".$mail_id.", ".$item_guid.", ".$to.");
INSERT INTO item_instance (guid,itemEntry,receiver) VALUES (".$item_guid.", ".$item.",".$to.");


Скажите,как это реализовать в даном участке кода ?



Спустя 28 минут, 2 секунды (13.01.2011 - 23:38) gidrosoldat написал(а):
Самое простое, заменить строки запросов:
if ($set != 0)
{
$r = 0;
foreach ($item_guid as $i)
{
$result1 = mysql_query("INSERT `mail_items`
SET
`mail_id` = '"
. int($mail_id) . "',
`item_guid` = '"
. escapeString($i) . "',
`receiver` = '"
. escapeString($to) . "'");
$result2 = mysql_query("INSERT `item_instance`
SET
`guid` = '"
. escapeString($i) . "',
`itemEntry` = '"
. escapeString($set[$r]) . "',
`receiver` = '"
. escapeString($to) . "'");
$r++;
}
}

else
{

if ($has_items)
{
//selectDb('characters');
$result1 = mysql_query("INSERT `mail_items`
SET
`mail_id` = '"
. int($mail_id) . "',
`item_guid` = '"
. escapeString($item_guid) . "',
`receiver` = '"
. escapeString($to) . "'");
$result2 = mysql_query("INSERT `item_instance`
SET
`guid` = '"
. escapeString($item_guid) . "',
`itemEntry` = '"
. escapeString($item) . "',
`receiver` = '"
. escapeString($to) . "'");
}
if ($result)
{
return $mail_id;
}
else
{
return 0;
}
}


Antiment, не забывай о escapeString и посмотри в программе, которую используешь для набора PHP кода должа быть функция по приводу кода в красивый вид. Одно нажатие и скобки выравниваются под линейку - увеличивается читаемость кода, самому приятней будет.

Спустя 42 минуты, 28 секунд (14.01.2011 - 00:20) Antiment написал(а):
Попробовал,выдает ошибку
Parse error: syntax error, unexpected $end

в этой строке
?>

собственно,это последняя строка в файле :D
Почему так ?

Спустя 31 минута, 5 секунд (14.01.2011 - 00:51) inpost написал(а):
Antiment
Забытая закрытая или лишняя открытая скобки.

Спустя 8 часов, 10 минут, 28 секунд (14.01.2011 - 09:02) gidrosoldat написал(а):
Antiment
я когда правил, одну скобку стер (кажется, закрывающую в конце) - у меня редактор на нее ругался ))
Сравни со старым кодом и вставь куда надо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.