updates.php

Статус
В этой теме нельзя размещать новые ответы.

Aida

Новичок
Репутация
0 / 106
Вот такая у меня появилась проблема...баг там....всё пробовал изменить...не помогает.....подскажите пожалуйста в чём проблема
[attachment=571:glan.PNG]
 
незнаю почему, но мне кажется нету person_har таблицы
 
всё есть не беспокойтесь...я даже поставил сборку новую от алекса опять такая проблема
 
кинь сюда кусок кода может тогда станет яснее.
 
Проблема заключается в том, что при изменении данные пытаются заноситься в таблицу БД которой не существует. Выложи полностью весь запрос к БД который идёт после проверки и добавления, а лучше всего выложи весь блок
Код:
switch ($oupdate) {
....
$msg="Удачно увеличили особенность \"$st_title\"!"; }
 
Код:
<script>

var fUms=['Владение ножами','Владение мечами','Владение топорами','Владение дубинами','Владение посохами'];
var fPr=['Лекарь','Кузнец','Огранщик','Наёмник','Шахтер','Маг','Алхимик','Торговец','Травник'];
var fSts=['Рукопашный бой','Одно оружие','Два оружия','Оружие и щит','Двуручное оружие','Магия'];

Array.prototype.in_array = function(p_val) {
    for(var i = 0, l = this.length; i < l; i++) {
        if(this[i] == p_val) {
            return true;
        }
    }
    return false;
}

var navs_auto = [28, 31, 32];

function pr(names,vals) {
    var t='';
    for (i=0;i<names.length;i++) {
        t += '<tr><td>'+names[i]+': </td><td align="right">'+vals[i*2]+'</td><td width=34><table bgcolor="#AAAAAA" width=32 height=6 cellpadding=1 cellspacing=0><tr><td height=4>[img]../img/images/nline.png[/img]</td></tr></table></td></tr>';
    }
    return t;
}

function yn(i, n)
{
    return '+'+i+'%'+((i<35 && freeNavs && !navs_auto.in_array(n)) ? '[url="main.php?set=updates&oupdate='+n+'&r='+Math.random()+'"]+[/url]':'');
}

function _buildNavInf(n)
{
    var text='<table border=0 cellpadding=0 cellspacing=1 class="textS"width="100%">';
    var ei=6;
    if (my_level > 2) ei=ei+3;
    if (my_level > 3) ei=ei+1;
    if (my_level > 4) ei=ei+2;
    if (my_level > 5) ei=ei+1;
    if (my_level > 6) ei=ei+2;

    for (var i=0; i<ei; i++)
    {
        text+='<tr><td id="nav'+i+'" nowrap="nowrap" height="15">'+navs[i]+': </td><td nowrap="nowrap" '+(navs_auto.in_array(i+1)?'style="color:#0000CC"':'')+'>'+yn(heroNavs[i],i+1)+'</td></tr>';
    }

    return text + '</table>';
}
</script>
<?
$p_har = mysql_fetch_assoc(mysql_query("SELECT * FROM person_har WHERE p_id = '".$stat['id']."'"));

// ----- # Повышаем физический параметр # ----- //
if (!empty($update)) {
if ($stat['s_updates'] > 0) {

        switch ($update) {
                case str: $st_name="strength"; $st_title="Сила"; break;
                case dex: $st_name="dex"; $st_title="Удача"; break;
                case agility: $st_name="agility"; $st_title="Ловкость"; break;
                case vitality: $st_name="vitality"; $st_title="Выносливость"; break;
                case power: $st_name="power"; $st_title="Энергия"; break;
                case razum: $st_name="razum"; $st_title="Разум"; break;
                case battery: $st_name="battery"; $st_title="Усталость"; break;
        default : $st_name=""; $st_title=""; break;
        }

        if (!empty($st_name)) {
                $stat['s_updates']-=1;
                $stat[$st_name] = $stat[$st_name] + 1;
                mysql_query("UPDATE person SET s_updates=s_updates-1, ".$st_name."=".$st_name."+1 WHERE id=".$stat['id']." AND s_updates>0");
                $msg="Удачно увеличили физический параметр \"$st_title\"!";
        }
}
else $msg="У Вас нет свободных увеличений!"; }
###

// ----- # Повышаем особенность # ----- //
if (!empty($oupdate)) {
if ($stat['o_updates'] > 0) {

        switch ($oupdate) {
                case 1: $p_har['sp_1']+=5; $st_title="Природная броня"; $st_name="sp_1"; break;
                case 2: $p_har['sp_2']+=5; $st_title="Безумная ярость"; $st_name="sp_2"; break;
                case 3: $p_har['sp_3']+=5; $st_title="Сила дракона"; $st_name="sp_3"; break;
                case 4: $p_har['sp_4']+=5; $st_title="Улучшенный уворот"; $st_name="sp_4"; break;
                case 5: $p_har['sp_5']+=5; $st_title="Здоровье"; $st_name="sp_5"; break;
                case 6: $p_har['sp_6']+=5; $st_title="Улучшенная стойкость"; $st_name="sp_6"; break;
                case 7: $p_har['sp_7']+=5; $st_title="Сопротивление магии"; $st_name="sp_7"; break;
                case 8: $p_har['sp_8']+=5; $st_title="Талантливый ученик"; $st_name="sp_8"; break;
                case 9: $p_har['sp_9']+=5; $st_title="Копатель"; $st_name="sp_9"; break;
                case 10: $p_har['sp_10']+=5; $st_title="Острый взгляд"; $st_name="sp_10"; break;
                case 11: $p_har['sp_11']+=5; $st_title="Магический дух"; $st_name="sp_11"; break;
                case 12: $p_har['sp_12']+=5; $st_title="Боевой транс"; $st_name="sp_12"; break;
                case 13: $p_har['sp_13']+=5; $st_title="Бремя уникальности"; $st_name="sp_13"; break;
                case 14: $p_har['sp_14']+=5; $st_title="Несокрушимая стойкость"; $st_name="sp_14"; break;
                case 15: $p_har['sp_15']+=5; $st_title="Изматывающая техника"; $st_name="sp_15"; break;
    default : $st_name=""; $st_title=""; break;
        }

        if ($p_har[$st_name] < 36){
        if (!empty($st_title) && !empty($st_name)) {
                $stat['o_updates']-=1;
                mysql_query("update person p, person_har ph set p.o_updates = p.o_updates-1, ph.".$st_name."=ph.".$st_name."+5 where p.id=".$stat['id']." AND ph.p_id=".$stat['id']." AND p.o_updates>0");
                $msg="Удачно увеличили особенность \"$st_title\"!";
        }
        }else $msg="У Вас нет свободных увеличений!";
}
else $msg="Вы не можете больше увеличить этот модификатор!"; }
###

$title="Умения";
include("config/html_header.php");
echo"<body>
<DIV ID=hint1></DIV>
<script language=JavaScript SRC='img/js/show_inf.js'></SCRIPT>";

echo"<table width=100% cellspacing=0 cellpadding=0 border=0>
<tr>
<td>
<center>[u][i]Умения[/i][/u]</center>
</td>
<td align=right>
<img src='img/images/refresh.gif' style='CURSOR: Hand' alt='Обновить' onclick='window.location.href=\"main.php?set=updates&tmp=\"+Math.random();\"\"'>
<img src='img/images/back.gif' style='CURSOR: Hand' alt='Вернуться' onclick='window.location.href=\"main.php?set=edit&tmp=\"+Math.random();\"\"'>
</td>
</tr>
</table>";

if (!empty($msg)) echo"<center><font color=red>[b]$msg[/b]</font>
</center>";

echo"Характеристики персонажа
<script language=JavaScript>
show_inf('".$stat['user']."','".$stat['id']."','".$stat['level']."','".$stat['rank']."','".$stat['tribe']."');
</script>
";


echo"
<table width=100% cellspacing=0 cellpadding=3>
<tr>
<td width=25% valign=top>";

// ----- # Таблица физ. параметров # ----- //

echo"
<table width=100% cellspacing=0 cellpadding=7 border=1 bordercolor=CCCCCC height=155>
<tr>
<td bgcolor=e2e0e0 align=center height=30 valign=center>
[b]Физические параметры [ [u]".$stat['s_updates']."[/u] ][/b]
</td>
</tr>
<tr>

<td>";


echo"
<script language=JavaScript>
var a = ".$stat['s_updates'].";

function vs (name, title,int, title2) {
        document.write('<LI><u onmouseover=\"hint(\'[u]'+title+'[/u]<LI>'+title2+'\',\'FFFFE1\',\'black\');\" onmouseout=\"c();\" style=\'CURSOR: Help\'>'+title+':</u> [b]'+int+'[/b]');
        if (a > 0) document.write(' <a style=\'CURSOR: hand\' title=\'Увеличить\' onclick=\"if (confirm(\'Увеличить физический параметр '+title+'?\')) window.location=\'main.php?set=updates&update='+name+'\'\"><b style=\'COLOR: Red\'>»[/b]</a>');
        }

vs('str','Сила','".$stat['strength']."','Прибавляет наносимый урон оружием');
vs('agility','Ловкость','".$stat['agility']."','Прибавляет Уворота');
vs('dex','Удача','".$stat['dex']."','Прибавлает Крита');
vs('vitality','Выносливость','".$stat['vitality']."','За каждое очко Выносливости прибавляется +5 пунктов к Жизни');
vs('power','Энергия','".$stat['power']."','Каждое очко Энергии дает +5 к Мане');
vs('razum','Разум','".$stat['razum']."','Каждое очко  прибавляет урон к магической атаке');
vs('battery','Активность','".$stat['battery']."','Прибавляет  каждое очко + 20 очков к Активности (Тем самым вы сможете работать и добывать дольше)');
";

echo"</SCRIPT>
</td>
</tr>
</table>";

echo"</td><td width=24% valign=top>";

// ----- # Таблица особенностей # ----- //

echo"
<table width=100% cellspacing=0 cellpadding=7 border=1 bordercolor=CCCCCC height=145>
<tr>
<td bgcolor=e2e0e0 align=center height=20 valign=center>
[b]Способности [ [u]".$stat['o_updates']."[/u] ][/b]
</td>
</tr>
<tr>
<td valign=center>";

echo"
<script language=JavaScript>
var my_level = ".$stat['level'].";
var freeNavs = ".$stat['o_updates'].";
var navs = ['Природная броня','Безумная ярость','Сила дракона','Улучшенный уворот','Здоровье','Улучшенная стойкость','Сопротивление магии','Талантливый ученик','Копатель','Острый взгляд','Магический дух','Боевой транс','Бремя уникальности','Несокрушимая стойкость','Изматывающая техника'];
var heroNavs=['".$p_har['sp_1']."','".$p_har['sp_2']."','".$p_har['sp_3']."','".$p_har['sp_4']."','".$p_har['sp_5']."','".$p_har['sp_6']."','".$p_har['sp_7']."','".$p_har['sp_8']."','".$p_har['sp_9']."','".$p_har['sp_10']."','".$p_har['sp_11']."','".$p_har['sp_12']."','".$p_har['sp_13']."','".$p_har['sp_14']."','".$p_har['sp_15']."'];
document.write(_buildNavInf(0));
</script>
</SCRIPT>

";

echo"</td>
</tr>
</table>";


echo"</td><td valign=top  width=27%>";

// ----- # Таблица мастерства # ----- //

echo"
<table width=100% cellspacing=0 cellpadding=7 border=1 bordercolor=CCCCCC height=155>
<tr>
<td bgcolor=e2e0e0 align=center height=30 valign=center colspan=3>
[b]Мастерство владения оружием[/b]
</td>
</tr>
<tr>
<td>
<script>
var herofUms=['".$stat['m_k']."','".$stat['m_k']."','".$stat['m_m']."','".$stat['m_m']."','".$stat['m_t']."','".$stat['m_t']."','".$stat['m_d']."','".$stat['m_d']."','".$stat['m_p']."','".$stat['m_p']."'];
var herofSts=['".$p_har['nav_1']."','".$p_har['navexp_1']."','".$p_har['nav_2']."','".$p_har['navexp_2']."','".$p_har['nav_3']."','".$p_har['navexp_3']."','".$p_har['nav_4']."','".$p_har['navexp_4']."','".$p_har['nav_5']."','".$p_har['navexp_5']."','".$p_har['nav_6']."','".$p_har['navexp_6']."'];
document.write(pr(fUms,herofUms));
document.write(pr(fSts,herofSts));
</script>
</td>
</tr>
</table>";

echo"</td><td valign=top>";

// ----- # Таблица мастерства профессий # ----- //

echo"
<table width=100% cellspacing=0 cellpadding=7 border=1 bordercolor=CCCCCC height=155>
<tr>
<td bgcolor=e2e0e0 align=center height=30 valign=center colspan=3>
[b]Навык профессий[/b]
</td>
</tr>
<tr>
<td>
<script>
var herofPr=['".$p_har['proff_1']."','".$p_har['proffexp_1']."','".$p_har['proff_2']."','".$p_har['proffexp_2']."','".$p_har['proff_3']."','".$p_har['proffexp_3']."','".$p_har['proff_4']."','".$p_har['proffexp_4']."','".$p_har['proff_5']."','".$p_har['proffexp_5']."','".$p_har['proff_6']."','".$p_har['proffexp_6']."','".$p_har['proff_7']."','".$p_har['proffexp_7']."','".$p_har['proff_8']."','".$p_har['proffexp_8']."','".$p_har['proff_9']."','".$p_har['proffexp_9']."'];

document.write(pr(fPr,herofPr));
</script>
</td>
</tr>
</table>";



echo"</td></tr></table>";
@include $pers;?>

вот код...а база обычная...алекса про
 
Попробуй
Код:
if ($p_har[$st_name] < 36){
        if (!empty($st_title) && !empty($st_name)) {
                $stat['o_updates']-=1;
                mysql_query("update person p, person_har ph set p.o_updates = p.o_updates-1, ph.".$st_name."=ph.".$st_name."+5 where p.id=".$stat['id']." AND ph.p_id=".$stat['id']." AND p.o_updates>0");
                $msg="Удачно увеличили особенность \"$st_title\"!";
        }
Заменить на
Код:
if ($p_har[$st_name] < 36){
if (!empty($st_name)) {
$stat['o_updates']-=1;
$p_har[$st_name] = $p_har[$st_name] + 5;
mysql_query("UPDATE person SET o_updates = o_updates-1 WHERE id=".$stat['id']." AND o_updates>0");
mysql_query("UPDATE person_har SET ".$st_name."=".$st_name."+5 WHERE p_id=".$stat['id']);
$msg="Удачно увеличили особенность \"$st_title\"!";}
У меня работает! :)
 
не помогает.....что-то тут не так....так у меня не было....вот теперь ломаю голову не могу понять зачем так случилось и от чего...
и ещё вдобавок мастерство владением тоже не пашет
 
Проверь хорошенько ты в бд нечего не удалил случайно? может бд битая? может файл битый? ты уверен что всё нормально?
 
да всё норм. Базу заливал дампером с 9 кратным сжатием. Может из-за этого?
 
хм. что то нифига не понял. на админском логине с рангом 100 всё работает без проблем, а на обычном пользовательском не хочет о_О
 
что-то мне кажется ты просто не всё пересмотерл, проверь структуру таблиц person & person_har в _хар должно быть p_19 или 14 походу... крч все должны быть
 
было 15 таких полей ... добавил ещё 4 поля в базу .... проверил и та же фигня клацаешь "добавить" выводит сообщение "успешно бла бла бла" а на самом деле ничего не добавляется .... 3 раза клацаешь и остаётся одно и то же значение после всей этой процедуры в базе по прежнему пустота
решил провести эксперимент .... вручную добавил данные в person_har тоесть там уже не пусто, а есть данные ... зашёл в игру под персонажем - всё выводится правильно как я и занёс в ручную и о чудо всё добавляется, но только в том случае если в базе уже существуют данные по нужному id
 
да вот именно с рангом 100 и админскими правами всё отлично работает....никто не знает как исправить...всё было супер...но в один момент вот так у меня и случилось..и во всех скриптах...как это понять?)))
 
Выход на мой взгляд очистить таблици person,person_har,person_inf,objects,slots и только тогда уже смотреть. Мне кажется вы с ИД чтото напутали там.
 
я всё очищал...ничего не помогает..то же самое....я с ума сойду честное слово.....хотел уже игру свою открывать а вот тут такая серьёзная проблема,которую я первый раз вижу...и во всех скриптах она появилась у меня)))что не качаю везде одно и тоже))может у меня голюцинации?)))
 
не знаю мне лень читать весь тот код что ты выложил. выложи таблицу person_har может у тебя полей не хватает.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху