Помогитое правильно сделать запрос

 
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 214
Здравствуйте!!!
Хочу изменить изменения статуса
В components/users/frontend.php вставил
Код PHP:
  1. $is_send = $inCore->inRequest('stat');
  2.  
  3. if ($is_send){
  4.  
  5. $inCore->loadClass('config');
  6. $inCore->loadClass('db');
  7. $inCore->loadClass('user');
  8. $inCore->loadClass('actions');
  9.  
  10. $inDB = cmsDatabase::getInstance();
  11. $inUser = cmsUser::getInstance();
  12.  
  13. $inUser->update();
  14.  
  15. if (!$inUser->id) { return; }
  16.  
  17. if (!$user_id) { $user_id = $inUser->id; }
  18.  
  19. if ($user_id != $inUser->id && !$inUser->is_admin) { return; }
  20.  
  21. $status = $inCore->request('status', 'str', '');
  22. $user_id = $inCore->request('id', 'int', 0);
  23. if (strlen($status)>140){ $status = substr($status, 0, 140); }
  24. $sql = "UPDATE cms_users
  25. SET status = '{$status}', status_date = NOW()
  26. WHERE id = '{$user_id}'
  27. LIMIT 1";
  28.  
  29. $inDB->query($sql);
  30.  
  31.  
  32. //регистрируем событие
  33. if ($status){
  34.  
  35.  
  36. cmsActions::log('set_status', array(
  37. 'object' => '',
  38. 'object_url' => '',
  39. 'object_id' => 0,
  40. 'target' => '',
  41. 'target_url' => '',
  42. 'target_id' => 0,
  43. 'description' => $status,
  44. 'user_id' => $user_id
  45. ));
  46. }
  47. }
  48.  
в шаблоне com_users_profile.tpl вместо ссылки "изменить статус" вставил
Код PHP:
  1. {if $myprofile}<div>
  2. <form action="" method="post">
  3. <input type="text" name="status" />
  4. <input type="submit" name="stat" value="изменить статус" />
  5. </div>
  6. {/if}
при нажатии на изменить статус в ленте появляется изменения а сам статус в профиле неменяется
как правильно написать запрос у базе для изменения статуса?
Книга мастера, делаем своими руками.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
Олег, не понял, зачем нужна эта строчка (номер 22)
Код PHP:
  1. $user_id = $inCore->request('id', 'int', 0);
у вас же эта переменная уже определена выше
Код PHP:
  1.  
  2. if (!$user_id) { $user_id = $inUser->id; }
  3. if ($user_id != $inUser->id && !$inUser->is_admin) { return; }
Я думаю, вы просто перед запросом сносите значение переменной, которая отвечает за id пользователя. И в итоге статус не меняется для нужного юзера. Сам запрос правильный.
оптимизирую помаленьку
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 214
SJen, спасибо)))
статус изменился только результат виден после обновления страници
неподскажите как сделать автоматически обновление страници после изменения статуса?
Книга мастера, делаем своими руками.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
Код PHP:
  1. {if $myprofile}<div>
  2. <form action="" method="post">
  3. <input type="text" name="status" />
  4. <input type="submit" name="stat" value="изменить статус" />
  5. </div>
  6. {/if}
закрывающийся тег </form> не поставили? - поставьте если нет.

И не понял, у вас разве изменения по аяксу работают? - что страница не обновляется.. Если по аяксу, то в javascript можно поменять статус, нет смысла ради него целую страницу перегружать. Не понял просто вашу схему до конца.. аякса не заметил, а если его нет - то страница и так сама обновляется
оптимизирую помаленьку
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 214
SJen, аякса нет
при изменении статуса страница перезагружается но статус остаётся прежний пока ещё раз не обновиш страницу
Книга мастера, делаем своими руками.
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 214
вставил
Код PHP:
  1. $inCore->redirect("/users/{$usr['login']}/");
  2.  
и всё заработало чётко)))
вместо ссылки изменить статус
Помогитое правильно сделать запрос
Книга мастера, делаем своими руками.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: