|
|
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
|
|
Гость
Гость
|
Код:} 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
|
|
Гость
Гость
|
Дмитрий писал(а):
Код:} 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;
}
}
}
|