Регистрация
Вход через соцсети
Восстановление пароля

Сохранение измененной информации (альтернативная форма)

Новый топик
07.07.2006, 13:23
Ответить | Цитировать
Гость
Гость

Есть просблема, сталкиваюсь уже не первый раз, но ранее придумывал обходные решения - теперь - поднадоело, хочу узнать. Если никакие данные не изменялись - то сохранение не происходит, и выскакивает "Error, object not saved", притом, есть скрытые поля, которые Я обновлять в действиях после сохраниения. Вопрос, можно сделать так, чтобы сохранение происходило полюбому, даже если не измениплись данные нив одном поле. Т.к. данные для этих скрытых полей - изменяются ...

Заранее спасибо.
07.07.2006, 13:44
Ответить | Цитировать
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

Первый раз вижу такую ошибку. Какая версия, какая редакция, обновляли ли ее? Поподробнее пожалуйста...
07.07.2006, 14:08
Ответить | Цитировать
Гость
Гость

Версия 2.2 Standard ... насколько Я понял не обновлялось (если скажете как посмотреть - скажу точнее) ...

Если Я вношу именение в любое поле (крому скрытых) - все нормально отрабатывается.
07.07.2006, 15:51
Ответить | Цитировать
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

Вы знаете, я поискал по файлам версии 2.2 стандарта содержание "Error, object not saved" и не нашел. Да и сам я не помню такого, равно как и подоной ошибка как версии 2.2, так в версии 2.3 или 2.4. Возможно, кто-то в процессе разработки "ковырялся" в ядре системы или в настройках шаблона что-то прописывал.
07.07.2006, 16:33
Ответить | Цитировать
Гость
Гость

Код:
message.php


Код:
} elseif ($posting == 1) {

require $ROOT_FOLDER."message_put.php";

$f_Checked += 0;

if ($admin_mode) {
$cond_check = "Checked=".$f_Checked;
$cond_keyword = ", Keyword='".$f_Keyword."'";
} else {
$cond_check = ""; $cond_keyword = "";
}

if ($user_table_mode)
$update = "UPDATE User SET ".$updateString." Checked=Checked ".$cond_keyword." WHERE User_ID='".$AUTH_USER_ID."'";

else
$update = "UPDATE Message".$classID." SET ".$updateString." ".$cond_check.$cond_keyword.($cond_check||$cond_keyword?",":"")."LastUser_ID=".$AUTH_USER_ID.", LastIP="".$REMOTE_ADDR."",LastUserAgent="".$HTTP_USER_AGENT."" WHERE Message_ID='".$message."'".(!$modRights?" AND User_ID=".$AUTH_USER_ID:"");


$resMsg = mysql_query($update, $LinkID);
$affectedRows = mysql_affected_rows($LinkID);

for ($i=0; $i<count($tmpFile); $i++) {
eval ("$tmpNewFile[$i] = "".$tmpNewFile[$i]."";");
rename($FILES_FOLDER.$tmpFile[$i],$FILES_FOLDER.$tmpNewFile[$i]);
}

if ($admin_mode && !$user_mode) {
if ($f_Priority && !$selfMsg) {
$res = mysql_query("UPDATE Message$classID SET Priority=Priority+1,LastUpdated=LastUpdated WHERE Priority>".$f_Priority." AND Subdivision_ID='".$sub."' AND Sub_Class_ID='".$cc."'", $LinkID);
$res = mysql_query("UPDATE Message$classID SET Priority=".($f_Priority+1).",LastUpdated=LastUpdated WHERE Message_ID='".$message."'", $LinkID);
}
}

if ($resMsg && $affectedRows) {
if ($editActionTemplate)
eval("echo "".$editActionTemplate."";");
else
echo "Object saved.<br><br>".$goBack;
} else {
if ($user_table_mode) {
echo "Object saved.<br><br>".$goBack;
} else {
echo "Error, object not saved.<br><br>".$goBack;
}
}

}
07.07.2006, 17:01
Ответить | Цитировать
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

Цитата:
if ($resMsg) {
if ($editActionTemplate)
eval("echo "".$editActionTemplate."";");
else
echo "Объект изменен.<br><br>".$goBack;
} else {
echo "Ошибка изменения объекта.<br><br>".$goBack;
}


Вот оригинал версии 2.2 Стандарт. Ну а вообще проблема в mysql_affected_rows. Видимо, на новом сервере иные настройки MySQL сервера, который возвращает 0, если данные теже самые и ничего обновлять не пришлось. Вообще это лучше уточнить у саппорта хостинга. От себя хочу привести лишь цитату:
Цитата:
As of PHP 4.3.0 (I assume, I only tried with 4.3.2), you can make mysql_affected_rows() return the number of rows matched, even if none are updated.

You do this by setting the CLIENT_FOUND_ROWS flag in mysql_connect(). For some reason, not all the flags are defined in PHP, but you can use the decimal equivalent, which for CLIENT_FOUND_ROWS is 2.

So, for example:

$db= mysql_connect("localhost", "user", "pass", false, 2);
mysql_select_db("mydb", $db);


К БД коннектимся в файле connect_io.php
10.07.2006, 12:15
Ответить | Цитировать
Гость
Гость

Я думаю, что код у меня все же оригинальный ... только сделали перевод на английский .... возмонжо стоят какие - то обновления системы. Про MySQL, что - то не подумал ... проверю, что он возвращает. Если возвращает false - попробую воспользоваться Вашим кодом с коннектом ... Спасибо большое ... Вы уже не раз выручали Меня ... думаю, и на этот раз все получится ....
10.07.2006, 12:20
Ответить | Цитировать
Гость
Гость

упс ... гость - это Я, Дмитрий.
20.07.2006, 14:39
Ответить | Цитировать
Гость
Гость

Дмитрий писал(а):
Код:
message.php


Код:
} elseif ($posting == 1) {

require $ROOT_FOLDER."message_put.php";

$f_Checked += 0;

if ($admin_mode) {
$cond_check = "Checked=".$f_Checked;
$cond_keyword = ", Keyword='".$f_Keyword."'";
} else {
$cond_check = ""; $cond_keyword = "";
}

if ($user_table_mode)
$update = "UPDATE User SET ".$updateString." Checked=Checked ".$cond_keyword." WHERE User_ID='".$AUTH_USER_ID."'";

else
$update = "UPDATE Message".$classID." SET ".$updateString." ".$cond_check.$cond_keyword.($cond_check||$cond_keyword?",":"")."LastUser_ID=".$AUTH_USER_ID.", LastIP="".$REMOTE_ADDR."",LastUserAgent="".$HTTP_USER_AGENT."" WHERE Message_ID='".$message."'".(!$modRights?" AND User_ID=".$AUTH_USER_ID:"");


$resMsg = mysql_query($update, $LinkID);
$affectedRows = mysql_affected_rows($LinkID);

for ($i=0; $i<count($tmpFile); $i++) {
eval ("$tmpNewFile[$i] = "".$tmpNewFile[$i]."";");
rename($FILES_FOLDER.$tmpFile[$i],$FILES_FOLDER.$tmpNewFile[$i]);
}

if ($admin_mode && !$user_mode) {
if ($f_Priority && !$selfMsg) {
$res = mysql_query("UPDATE Message$classID SET Priority=Priority+1,LastUpdated=LastUpdated WHERE Priority>".$f_Priority." AND Subdivision_ID='".$sub."' AND Sub_Class_ID='".$cc."'", $LinkID);
$res = mysql_query("UPDATE Message$classID SET Priority=".($f_Priority+1).",LastUpdated=LastUpdated WHERE Message_ID='".$message."'", $LinkID);
}
}

if ($resMsg && $affectedRows) {
if ($editActionTemplate)
eval("echo "".$editActionTemplate."";");
else
echo "Object saved.<br><br>".$goBack;
} else {
if ($user_table_mode) {
echo "Object saved.<br><br>".$goBack;
} else {
echo "Error, object not saved.<br><br>".$goBack;
}
}

}
198 196 2006-07-20 14:39:44 8622
Описание проекта