Вчера сделал выбор персонажей через пост проверки админки.Всё правильно работает но когда Админы постов потверждают персонажей вышает самому админу кто потвердил а не дает пользователю
вот такие запросы использую:
mysql_query_m("UPDATE `user` SET `idit` = '".$item['id']."' WHERE `id` ='$user[id]';"
mysql_query_m("UPDATE `user` SET `missii` = '".($user['missii']=1)."' WHERE `id` =".($user['id']).";"
mysql_query_m("UPDATE `user` SET `pers`='".$item['name']."' WHERE `id`='".$user['id']."'"
mysql_query_m("UPDATE `persy` SET `times` = '".($item['times']=0)."' WHERE `id` = '$item[id]';"
mysql_query_m("UPDATE `user` SET `post_naruto` = '".($user['post_naruto']=1)."' WHERE `id` ='$user[id]';"
mysql_query_m("UPDATE `user` SET `rang` = '".($user['rang']=1)."' WHERE `id` ='$user[id]';"
mysql_query_m("UPDATE `user` SET `poster_nar` = '".($user['poster_nar']=0)."' WHERE `id` ='$user[id]';"
msg('Персонаж выбран');
mysql_query_m("UPDATE `persy` SET `idit` = '".($item['idit']=$user['id'])."' WHERE `id` = '$item[id]';"
mysql_query_m("UPDATE `persy` SET `nick` = '".($item['nick']=$user['nick'])."' WHERE `id` = '$item[id]';"
Как сделать когда админы потверждали пост не давал система админам перс а давал тому пользователю кто писал пост
Добавлено 09.06.15 в 20:19:51:
Даже оптимизировал запросов не получается
Весь код с оптимизорованным запросом
<?
include_once '../../sys/inc/start.php';
include_once '../../sys/inc/compress.php';
include_once '../../sys/inc/sess.php';
include_once '../../sys/inc/home.php';
include_once '../../sys/inc/settings.php';
include_once '../../sys/inc/db_connect.php';
include_once '../../sys/inc/ipua.php';
include_once '../../sys/inc/fnc.php';
include_once '../../sys/inc/user.php';
if (isset($user))$ank['id']=$user['id'];
if (isset($_GET['id']))$ank['id']=intval($_GET['id']);
if ($ank['id']==0)
{
$pers=get_user($pers['id']);
$set['title']=' Проверочный пост '; // заголовок страницы
include_once '../../sys/inc/thead.php';
title();
aut();
echo "<span class=\"status\">$ank[group_name]</span><br />\n";
if ($ank['ank_o_sebe']!=NULL)echo "<span class=\"ank_n\">О себе:</span> <span class=\"ank_d\">$ank[ank_o_sebe]</span><br />\n";
if(isset($_SESSION['refer']) && $_SESSION['refer']!=NULL && otkuda($_SESSION['refer']))
echo "<div class='foot'><a href='$_SESSION[refer]'>".otkuda($_SESSION['refer'])."</a><br />\n</div>\n";
include_once '../../sys/inc/tfoot.php';
exit;
}
$pers=get_user($pers['id']);
if(!$pers){header("Location: /index.php?".SID);exit;}
$pers=get_user($pers['id']);
$set['title']='Проверочный пост '; // заголовок страницы
include_once '../../sys/inc/thead.php';
title();
if ((!isset($_SESSION['refer']) || $_SESSION['refer']==NULL)
&& isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!=NULL &&
!ereg('info\.php',$_SERVER['HTTP_REFERER']))
$_SESSION['refer']=str_replace('&','&',ereg_replace('^http://[^/]*/','/', $_SERVER['HTTP_REFERER']));
aut();
$q = mysql_query("SELECT * FROM `persy` WHERE `id` = '".intval($_GET['id'])."'"
if (!mysql_num_rows($q)) {
echo '<div class="err">Нет такого Персонажа!</div>';
echo "<div class=\"foot\"> <a href='/naruto/persy/index.php/'>Выбор Персонажей</a></div>";
include_once '../../sys/inc/tfoot.php';
break; }
$post=mysql_query("SELECT * FROM `persy` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"
//if ($ank['group_access']>1)echo "<span class='status'>$ank[group_name]</span><br />\n";
//include 'inc/admin_act.php';
if (isset($_POST['msg']) && isset($user))
{
$msg=$_POST['msg'];
if (isset($_POST['translit']) && $_POST['translit']==1)$msg=translit($msg);
$mat=antimat($msg);
if ($mat)$err[]='В тексте сообщения обнаружен мат: '.$mat;
if (strlen2($msg)>100500){$err[]='Сообщение слишком длинное';}
elseif (strlen2($msg)<$tex[simvolov]){$err[]='Пост слишком маленький нужно не меньше '.$tex['simvolov'].' символов!';}
elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `pers_post` WHERE `id_user` = '$user[id]' AND `id_pers`='$ank[id]' AND `msg` = '".my_esc($msg)."' LIMIT 1",0)!=0){$err='Ваш пост повторяет предыдущий';}
elseif(!isset($err)){
$tema=htmlspecialchars(mysql_real_escape_string(trim($_POST['tema'])));
mysql_query("UPDATE `user` SET `pers_post` = '".$tex['name']."' WHERE `id` ='$user[id]';"
mysql_query("INSERT INTO `pers_post` (id_user, time, tema, msg, id_pers) values('$user[id]', '$time', '$tema', '".my_esc($msg)."', '$ank[id]')"
msg('Сообщение успешно добавлено');
}
}
err();
echo "<center>";
$q = mysql_query("SELECT * FROM `persy` WHERE `id` = '".intval($_GET['id'])."'"
if (!mysql_num_rows($q)) {
echo '<div class="err">Нет такого Персонажа!</div>';
echo "<div class=\"foot\"> <a href='/naruto/persy/index.php/'>Выбор Персонажей</a></div>";
include_once '../../sys/inc/tfoot.php';
break;
}
$post=mysql_query("SELECT * FROM `persy` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"
$tex = mysql_fetch_assoc($post);
$k_post=mysql_result(mysql_query("SELECT COUNT(*) FROM `pers_post` WHERE `id_pers`='$ank[id]'",0);
$k_page=k_page($k_post,$set['p_str']);
$page=page($k_page);
$start=$set['p_str']*$page-$set['p_str'];
////////////////
if ($k_page>1)str('?id='.$ank['id'].'&',$k_page,$page); // Вывод страниц
/////////////////
$q=mysql_query("SELECT * FROM `pers_post` WHERE `id_pers`='$ank[id]' ORDER BY id DESC LIMIT $start, $set[p_str]"
while ($post = mysql_fetch_assoc($q))
$item=mysql_fetch_array(mysql_query_m("select * from `persy` where `id`='".intval($_GET['id'])."'");
{
$ank12=get_user($post['id_user']);
$ank=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = $post[id_user] LIMIT 1");
if(isset($_POST['yes']))
{mysql_query("
UPDATE `user`
SET `idit` = '" . $item['id'] . "',
`missii` = '1',
`pers`='" . $item['name'] . "',
`post_naruto` = '1',
`rang` = '1',
`poster_nar` = '0'
WHERE `id` =" . $user['id'] . ";"
mysql_query("
UPDATE `persy`
SET `times` = '0',
`idit` = '" . $user['id'] . "',
`nick` = '" . $user['nick'] . "'
WHERE `id` = '" . $item['id'] . "';"
msg('Персонаж выбран');
header("Location: /naruto/menu.php"
echo "<div class='p_m'><center>";
echo "Вы выбрали $item[name]. <br /><a href='/naruto/menu.php'>Вернуться в квест</a>";
echo "</center></div>";
echo"<div class='foot'>\n";
echo "<img src='/naruto/persy/img/back.png' alt='' /> <a href='item.php?id=$item[id]'>Назад</a><br />\n";
echo"</div>\n";
include_once '../../sys/inc/tfoot.php';
exit();
}
}
?>
мои глаза...
зачем столько много запросов, если часть из них в одну таблицу и с одним и тем же WHERE
почему бы не сделать так SET `pole1` = 'data1', `pole2` = 'data2'
Я ещё новичок поэтому .
А причем тут оптимизация?Если всё правильно то почему те админу который проверяет постов дает персонажа ему а не пользователям
broker, к топику не имеет отношения оптимизация, но лучше сразу писать код грамотнее.
Чем потом в будущем локти кусать, когда кода будет много и исправлять много.
цитировал ещё весь код
посмотрите там я укоротил то есть укоритили это в фиере но всё равно ничего не выходит
Сможете исправить в чём ошибся?
<?
mysql_query("
UPDATE `user`
SET `idit` = '" . $item['id'] . "',
`missii` = '1',
`pers`='" . $item['name'] . "',
`post_naruto` = '1',
`rang` = '1',
`poster_nar` = '0'
WHERE `id` =" . $ank['id'] . ";"?>
Добавлено 09.06.15 в 20:50:20:
и да, тут не хрена нет ничего оптимизир...
broker, и то, user в жоподцмс это сам ты, анк это противоположный пользователь...