Перейти к содержанию
Авторизация  
winter37rus

Расположение таблиц?stressweb

Рекомендуемые сообщения

Всем ку!

Обьясню сразу

У меня не выводит список вещей на персе в админке и ЛК

Помогите разобраться с таблицами и колонками куда чего пихать не пойму

в mysql в таблице 'items' у меня 7 колонок

item_id

owner_id

item_type

amount

location

slot

enchant

Как все тут поменять чтобы все стало выводить как положено?

 

сборка lucera

 

в папке l2j в файле привязки сервера и сайта почему то строка связанная с инвентарем такая :

"getInventory" => "SELECT 0 FROM `items` WHERE FALSE;",
		
"getCharInventory" => "SELECT 0 FROM `items` WHERE FALSE;",

Но если поменять этот код сверху на этот то все кое как работать начинает.

"getInventory" => "
               SELECT items.owner_id,items.item_id,items.item_type,items.amount,items.location,items.enchant,
               CASE WHEN armor.name != '' THEN armor.name 
               WHEN weapon.name != '' THEN weapon.name 
               WHEN etcitem.name != '' THEN etcitem.name 
               END AS name, 
               CASE WHEN armor.crystal_type != '' THEN 'armor' 
               WHEN weapon.crystal_type != '' THEN 'weapon' 
               WHEN etcitem.crystal_type != '' THEN 'etc' 
               END AS `type` 
               FROM `items` 
               LEFT JOIN `armor` ON armor.item_id = items.item_id 
               LEFT JOIN weapon ON weapon.item_id = items.item_id 
               LEFT JOIN etcitem ON etcitem.item_id = items.item_id 
               WHERE items.owner_id='{charID}' 
               ORDER BY {order}",

         "getCharInventory" => "
               SELECT items.owner_id,items.item_id,items.item_type,items.amount,items.location,items.enchant,armorName,weaponName,etcName,armorType,weaponType,etcType
               FROM `items` 
               LEFT JOIN (
               SELECT item_id, name AS armorName, crystal_type AS armorType 
               FROM `armor`
               ) AS aa ON aa.item_id = items.item_id 
               LEFT JOIN (
               SELECT item_id, name AS weaponName, crystal_type AS weaponType 
               FROM `weapon`
               ) AS ww ON ww.item_id = items.item_id
               LEFT JOIN (
               SELECT item_id, name AS etcName, crystal_type AS etcType 
               FROM `etcitem`
               ) AS ee ON ee.item_id = items.item_id
               WHERE items.owner_id='{charID}' AND items.location='{loc}' 
               ORDER BY items.location",

Начинает отображаться но без картинок все колонки перепутаны и хрен поймешь что

 

 

в папке admin в файле chars.php такой код 

 /*************************
        * Show char inventory
        *************************/
        $sel = $gdb[$sid]->SuperQuery( $qList[$vgs]["getInventory"], array("charID" => $charID, "order" => "name") );
        if ( $gdb[$sid]->num_rows($sel) == 0 ) {
            $l2_content .= "<div class='error'>У персонажа нет вещей</div>";
        } else {
            $l2_content .= "<div>
				<table cellpadding='0' cellspacing='0' width='100%' class='shadow'>
				<tr>
					<td class='tdTitle'>ID</td>
					<td class='tdTitle'>Item</td>
					<td class='tdTitle'>Type</td>
					<td class='tdTitle'>Count</td>
					<td class='tdTitle'>Enchant</td>
					<td class='tdTitle'>Loc</td>
					<td class='tdTitle'>&nbsp</td>
				</tr>\n";

            while ( list($object_id, $item_id, $item_count, $item_enchant, $item_loc, $item_name, $item_type) = $gdb[$sid]->fetch($sel) ) {
                $l2_content .= "
				<tr class='trRow' onmouseover=\"this.className='trRowOn'\" onmouseout=\"this.className='trRow'\">
					<td>".$item_id."</td>
					<td>".$item_name."</td>
					<td>".$item_type."</td>
					<td>".$controller->CountFormat( $item_count )."</td>
					<td>".$item_enchant."</td>
					<td>".$item_loc."</td>
					<td><a href='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=edit_item&id={$charID}&object_id={$object_id}'><img src='".TPLDIR."/edit.png' title='Edit'></a> <a href=\"javascript: v='{$item_id}'; url='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=del_item&id={$charID}&object_id={$object_id}'; confirmDelete(v,url);\"><img src='".TPLDIR."/delete.png' title='Delete'></a></td>
				</tr>\n";
            }
            $l2_content .= "</table></div><br>";
        }
    }
}


/**

в папке application/account/charinfo.php такой код

 /**************************
                * items paperdoll
                **************************/
                $query_paperdoll = $gdb[$sid]->SuperQuery( $qList[$vgs]["getCharInventory"], array("charID" => $charID, "loc" => "PAPERDOLL") );
                $paperdoll = "";
                while ( $paperdoll_data = $gdb[$sid]->fetch($query_paperdoll) ) {
                    $name = ( $paperdoll_data["armorName"] != "" ) ? $paperdoll_data["armorName"] ($paperdoll_data["weaponName"] != "") ? $paperdoll_data["weaponName"]:$paperdoll_data["etcName"] );
                    $name = str_replace( "'", "\\'", $name );
                    $grade = ( $paperdoll_data["armorType"] != "" ) ? ( (strtolower($paperdoll_data["armorType"]) == "none") ? "ng":$paperdoll_data["armorType"] ) ($paperdoll_data["weaponType"] != "") ? ((strtolower($paperdoll_data["weaponType"]) == "none") ? "ng":$paperdoll_data["weaponType"]):"" );
                    $grade = ( !empty($grade) ) ? '<img border=0 src='.TPLDIR.'/images/grade/grade_'.$grade.'.gif>':"";
                    $enchant = $paperdoll_data["enchant_level"] > 0 ? " +".$paperdoll_data["enchant_level"]:"";
                    $count = $controller->CountFormat( $paperdoll_data["count"] );
                    $img = ( $controller->IsImage($paperdoll_data["item_id"]) ) ? $paperdoll_data["item_id"]:"blank";
                    $type = $qList[$vgs]["itemType"][$paperdoll_data["loc_data"]];
                    $paperdoll .= "<div id='item' class='{$type}'><img border='0' src='".HTTP_HOME_URL."/items/{$img}.gif' onmouseover=\"Tip('{$name} {$count} {$enchant} {$grade}', FONTCOLOR, '#333333',BGCOLOR, '#FFFFFF', BORDERCOLOR, '#666666', FADEIN, 500, FADEOUT, 500, FONTWEIGHT, 'bold')\"></div>\n";
                }

                /**************************
                * items inventory
                **************************/
                $query_inventory = $gdb[$sid]->SuperQuery( $qList[$vgs]["getCharInventory"], array("charID" => $charID, "loc" => "INVENTORY") );
                $inv = "";
                while ( $inv_data = $gdb[$sid]->fetch($query_inventory) ) {
                    $name = ( $inv_data["armorName"] != "" ) ? $inv_data["armorName"] ($inv_data["weaponName"] != "") ? $inv_data["weaponName"]:$inv_data["etcName"] );
                    $name = str_replace( "'", "\\'", $name );
                    $grade = ( $inv_data["armorType"] != "" ) ? ( (strtolower($inv_data["armorType"]) == "none") ? "ng":$inv_data["armorType"] ) ($inv_data["weaponType"] != "") ? ((strtolower($inv_data["weaponType"]) == "none") ? "ng":$inv_data["weaponType"]):"" );
                    $grade = ( !empty($grade) ) ? '<img border=0 src='.TPLDIR.'/images/grade/grade_'.$grade.'.gif>':"";
                    $enchant = $inv_data["enchant_level"] > 0 ? " +".$inv_data["enchant_level"]:"";
                    $count = ( $inv_data["count"] > 1 ) ? "(".$controller->CountFormat( $inv_data["count"] ).")":"";
                    $img = ( $controller->IsImage($inv_data["item_id"]) ) ? $inv_data["item_id"]:"blank";
                    $inv .= "<img class='floated' border='0' src='".HTTP_HOME_URL."/items/{$img}.gif' onmouseover=\"Tip('{$name} {$count} {$enchant} {$grade}', FONTCOLOR, '#333333',BGCOLOR, '#FFFFFF', BORDERCOLOR, '#666666', FADEIN, 500, FADEOUT, 500, FONTWEIGHT, 'bold')\">\n";
                }

                $tpl->LoadView( "character" );
                $tpl->Set( "prof", "<img src='".TPLDIR."/images/prof/{$char_data["base_class"]}.gif'>" );
                $tpl->Set( "charname", $char_data["char_name"] );
                $tpl->Set( "sex", "<img src='".TPLDIR."/images/face/{$char_data["race"]}_{$char_data["sex"]}.gif'>" );
                $tpl->Set( "race", $raceList[$char_data["race"]] );
                $tpl->Set( "level", $char_data["level"] );
                $tpl->Set( 'cp', $char_data["maxCp"] );
                $tpl->Set( 'hp', $char_data["maxHp"] );
                $tpl->Set( 'mp', $char_data["maxMp"] );
                $tpl->Set( 'pvp', $char_data["pvpkills"] );
                $tpl->Set( 'pk', $char_data["pkkills"] );
                $tpl->Set( 'karma', $char_data["karma"] );
                $tpl->Set( 'str', $char_data["STR"] );
                $tpl->Set( 'dex', $char_data["DEX"] );
                $tpl->Set( 'con', $char_data["CON"] );
                $tpl->Set( 'int', $char_data["_INT"] );
                $tpl->Set( 'wit', $char_data["WIT"] );
                $tpl->Set( 'men', $char_data["MEN"] );
                $tpl->Set( 'exp', $char_data["exp"] );
                $tpl->Set( 'sp', $char_data["sp"] );
                $tpl->Set( 'paperdoll', $paperdoll );
                $tpl->Set( 'inventory', $inv );
                $tpl->Build( "l2character" );
                $profile = $tpl->GetResult( "l2character" );
                if ( $l2cfg["cache"]["enable"] and $l2cfg["cache"]["char"] ) {
                    $controller->SetCache( "l2char_{$charID}_s{$sid}", $profile, $l2cfg["cache"]["char"] );
                }
            } else {
                $profile = "<div class='error'>{$lang["chars_12"]}</div>";
            }
        }
    }
} else
    exit;
?>

Всю инфу выложил прошу помощи ребята выручайте!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у тебя бд вообще не люцеровское не думал просто таблицу с люцеры закинуть? Или в твоей таблийце уже что-то важное записано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у тебя бд вообще не люцеровское не думал просто таблицу с люцеры закинуть? Или в твоей таблийце уже что-то важное записано?

угу есть важные вещи. хотелось бы просто l2j_lucera3 переписать. изменить под мои таблицы! да и нет у меня таблицы с люцеры!все что дали с люцерой всю установил

Изменено пользователем Dimonich

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

угу есть важные вещи. хотелось бы просто l2j_lucera3 переписать. изменить под мои таблицы! да и нет у меня таблицы с люцеры!все что дали с люцерой всю установил

Так у тебя люцера 3?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуй так
 

"getInventory" => "
        SELECT items.item_id,items.owner_id,items.item_type,items.amount,items.loc,items.location,items.slot,items.enchant,
            CASE WHEN armor.name != '' THEN armor.name
            WHEN weapon.name != '' THEN weapon.name
            WHEN etcitem.name != '' THEN etcitem.name
            END AS name,
            CASE WHEN armor.crystal_type != '' THEN 'armor'
            WHEN weapon.crystal_type != '' THEN 'weapon'
            WHEN etcitem.crystal_type != '' THEN 'etc'
            END AS `type`
        FROM `items`
        LEFT JOIN `armor` ON armor.item_id = items.item_id
        LEFT JOIN weapon ON weapon.item_id = items .item_id
        LEFT JOIN etcitem ON etcitem.item_id = items.item_id
        WHERE items.owner_id='{charID}'
        ORDER BY {order}",
        
    "getCharInventory" => "
        SELECT items.item_id,items.owner_id,items.item_type,items.amount,items.loc,items.location,items.slot,items.enchant,armorName,weaponName,etcName,armorType,weaponType,etcType
        FROM `items`
        LEFT JOIN (
            SELECT item_id, name AS armorName, crystal_type AS armorType
            FROM `armor`
            ) AS aa ON aa.item_id = items.item_id
        LEFT JOIN (
            SELECT item_id, name AS weaponName, crystal_type AS weaponType
            FROM `weapon`
            ) AS ww ON ww.item_id = items.item_id
        LEFT JOIN (
            SELECT item_id, name AS etcName, crystal_type AS etcType
            FROM `etcitem`
            ) AS ee ON ee.item_id = items.item_id
        WHERE items.owner_id='{charID}' AND items.location='{loc}'
ORDER BY items.location",

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ошибка

удалил items.loc

стало работать но все неправильно отображает

где count пишет id адены а в заточке показывает колличество

9cb856e86343.png

 

 

вот мои таблицы item_id

owner_id

item_type

amount

location

slot

enchant

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

таблицы item_id

owner_id

item_type

amount

location

slot

enchant

 

Напиши что за что отвечает вот слот например это что?

 

Да итемс лок лишнее не увидел

Изменено пользователем L2Banners

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот мои таблицы item_id

owner_id

item_type

amount

location

slot

enchant

 

Напиши что за что отвечает вот слот например это что?

 

Да итемс лок лишнее не увидел

я хз как узнать?.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я хз как узнать?.

Посмотреть значения в талицах и понять что она показывает.  хотя бы что у тебя за таблица вместо count

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотреть значения в талицах и понять что она показывает.  хотя бы что у тебя за таблица вместо count

 

хзхзхз

 

короче у меня в инвентаре адена в колличестве 998 штук .и хомка точеная на +10

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"getInventory" => "
        SELECT items.owner_id,items.item_id,items.item_type,items.amount,items.enchant,items.location,
            CASE WHEN armor.name != '' THEN armor.name
            WHEN weapon.name != '' THEN weapon.name
            WHEN etcitem.name != '' THEN etcitem.name
            END AS name,
            CASE WHEN armor.crystal_type != '' THEN 'armor'
            WHEN weapon.crystal_type != '' THEN 'weapon'
            WHEN etcitem.crystal_type != '' THEN 'etc'
            END AS `type`
        FROM `items`
        LEFT JOIN `armor` ON armor.item_id = items.item_id
        LEFT JOIN weapon ON weapon.item_id = items .item_id
        LEFT JOIN etcitem ON etcitem.item_id = items.item_id
        WHERE items.owner_id='{charID}'
        ORDER BY {order}"
,
        
    
"getCharInventory" => "
        SELECT items.owner_id,items.item_id,items.item_type,items.amount,items.enchant,items.location,armorName,weaponName,etcName,armorType,weaponType,etcType
        FROM `items`
        LEFT JOIN (
            SELECT item_id, name AS armorName, crystal_type AS armorType
            FROM `armor`
            ) AS aa ON aa.item_id = items.item_id
        LEFT JOIN (
            SELECT item_id, name AS weaponName, crystal_type AS weaponType
            FROM `weapon`
            ) AS ww ON ww.item_id = items.item_id
        LEFT JOIN (
            SELECT item_id, name AS etcName, crystal_type AS etcType
            FROM `etcitem`
            ) AS ee ON ee.item_id = items.item_id
        WHERE items.owner_id='{charID}' AND items.location='{loc}'
ORDER BY items.location"
,

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3b2d0d104931.png

 

paperdol это то что надето и должно быть вроде как в LOC

inventory то что в инвентаре  и должно быть вроде как в LOC

заточка попала в LOC

количество в заточку 

все перепутано

 

 

 

вот код отображения в админке 

 /*************************
        * Show char inventory
        *************************/
        $sel = $gdb[$sid]->SuperQuery( $qList[$vgs]["getInventory"], array("charID" => $charID, "order" => "name") );
        if ( $gdb[$sid]->num_rows($sel) == 0 ) {
            $l2_content .= "<div class='error'>У персонажа нет вещей</div>";
        } else {
            $l2_content .= "<div>
				<table cellpadding='0' cellspacing='0' width='100%' class='shadow'>
				<tr>
					<td class='tdTitle'>ID</td>
					<td class='tdTitle'>Item</td>
					<td class='tdTitle'>Type</td>
					<td class='tdTitle'>Count</td>
					<td class='tdTitle'>Enchant</td>
					<td class='tdTitle'>Loc</td>
					<td class='tdTitle'>&nbsp</td>
				</tr>\n";

            while ( list($object_id, $item_id, $item_count, $item_enchant, $item_loc, $item_name, $item_type) = $gdb[$sid]->fetch($sel) ) {
                $l2_content .= "
				<tr class='trRow' onmouseover=\"this.className='trRowOn'\" onmouseout=\"this.className='trRow'\">
					<td>".$item_id."</td>
					<td>".$item_name."</td>
					<td>".$item_type."</td>
					<td>".$controller->CountFormat( $item_count )."</td>
					<td>".$item_enchant."</td>
					<td>".$item_loc."</td>
					<td><a href='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=edit_item&id={$charID}&object_id={$object_id}'><img src='".TPLDIR."/edit.png' title='Edit'></a> <a href=\"javascript: v='{$item_id}'; url='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=del_item&id={$charID}&object_id={$object_id}'; confirmDelete(v,url);\"><img src='".TPLDIR."/delete.png' title='Delete'></a></td>
				</tr>\n";
            }
            $l2_content .= "</table></div><br>";
        }
    }
}

Изменено пользователем Dimonich

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня в профиле контакты, можешь написать в скайп или в аську, быстрее будет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в данный момент на работе. скайпы и аськи ок и вк и прочие вещи у нас в рабочее время запрещены. нехочу получить люлей от начальства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

/*************************
* Show char inventory
*************************/

$sel = $gdb[$sid]->SuperQuery( $qList[$vgs]["getInventory"], array("charID" => $charID, "order" => "name") );
if ( $gdb[$sid]->num_rows($sel) == 0 ) {
$l2_content .= "<div class='error'>У персонажа нет вещей</div>";
} else {
$l2_content .= "<div>
                <table cellpadding='0' cellspacing='0' width='100%' class='shadow'>
                <tr>
                    <td class='tdTitle'>ID</td>
                    <td class='tdTitle'>Item</td>
                    <td class='tdTitle'>Type</td>
                    <td class='tdTitle'>Count</td>
                    <td class='tdTitle'>Enchant</td>
                    <td class='tdTitle'>Loc</td>
                    <td class='tdTitle'>&nbsp</td>
                </tr>\n"
;

while ( list($object_id, $item_id, $item_type, $item_count, $item_enchant, $item_loc,) = $gdb[$sid]->fetch($sel) ) {
$l2_content .= "
                <tr class='trRow' onmouseover=\"this.className='trRowOn'\" onmouseout=\"this.className='trRow'\">
                    <td>"
.$item_id."</td>
                    <td>"
.$item_name."</td>
                    <td>"
.$item_type."</td>
                    <td>"
.$controller->CountFormat( $item_count )."</td>
                    <td>"
.$item_enchant."</td>
                    <td>"
.$item_loc."</td>
                    <td><a href='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=edit_item&id={$charID}&object_id={$object_id}'><img src='"
.TPLDIR."/edit.png' title='Edit'></a> <a href=\"javascript: v='{$item_id}'; url='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=del_item&id={$charID}&object_id={$object_id}'; confirmDelete(v,url);\"><img src='".TPLDIR."/delete.png' title='Delete'></a></td>
                </tr>\n"
;
}
$l2_content .= "</table></div><br>";
}
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну стало более менее но при попытке редактировать пишет ошибку 

		SELECT `amount` AS `count`, `enchant` AS `enchant_level`,`item_type` AS `item_id` 
		FROM `items` 
		WHERE `object_id`='268478223'

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  /*************************
        * Add Item
        *************************/
        $l2_content .= "
			<div align='left'>
			<form action='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&id={$charID}' method='post'>
			Добавить персонажу предмет   <b>Item ID</b>: <input type='text' name='AddItemId' style='width: 70px;'>   <b>Количество:</b> <input type='text' name='AddItemCount' style='width: 70px;'>    <b>Заточка:</b> <input type='text' name='AddItemEnchant' value='0' style='width: 70px;'> <b><i>одиночный</i></b> <input type='checkbox' value='1' name='AddItemSingle' title='Не складывается в кучу, а добавляется отдельно'> <input type='submit' value='Добавить' name='AddItem' class='button'></form>
			</div>";
        if ( isset($_POST["AddItem"]) ) {
            $AddItemId = intval( $_POST["AddItemId"] );
            $AddItemCount = intval( $_POST["AddItemCount"] );
            $AddItemEnchant = !empty( $_POST["AddItemEnchant"] ) ? intval( $_POST["AddItemEnchant"] ):0;
            $AddItemSingle = intval( $controller->set("AddItemSingle") );
            if ( empty($AddItemId) or $AddItemId == 0 )
                $l2_content .= "<div class='error'>Введите ID предмета</div>";
            elseif ( empty($AddItemCount) or $AddItemCount == 0 )
                $l2_content .= "<div class='error'>Введите количество предметов</div>";
            elseif ( $char_data["online"] == 1 )
                $l2_content .= "<div class='error'>Персонаж находится в игре</div>";
            else {
                if ( $AddItemSingle == "0" ) {
                    $add_query = $gdb[$sid]->query( "SELECT `object_id`,`count` FROM `items` WHERE `owner_id`='{$charID}' AND `item_id`='{$AddItemId}' AND `loc`='INVENTORY'" );
                    if ( $gdb[$sid]->num_rows($add_query) > 0 ) {
                        $add_data = $gdb[$sid]->fetch( $add_query );
                        $gdb[$sid]->query( "UPDATE `items` SET `count`=`count`+{$AddItemCount} WHERE `owner_id`='{$charID}' AND `object_id`='{$add_data["object_id"]}'" );
                    } else {
                        list( $max_obj ) = $gdb[$sid]->fetch( $gdb[$sid]->query("SELECT MAX(`object_id`)+1 FROM `items`") );
                        $gdb[$sid]->query( "INSERT INTO `items` SET `owner_id`='{$charID}',`object_id`='{$max_obj}',`item_id`='{$AddItemId}',`count`={$AddItemCount},`enchant_level`='{$AddItemEnchant}',`loc`='INVENTORY'" );
                    }
                } else {
                    for ( $i = 0; $i < $AddItemCount; $i++ ) {
                        list( $max_obj ) = $gdb[$sid]->fetch( $gdb[$sid]->query("SELECT MAX(`object_id`)+1 FROM `items`") );
                        $gdb[$sid]->query( "INSERT INTO `items` SET `owner_id`='{$charID}',`object_id`='{$max_obj}',`item_id`='{$AddItemId}',`count`='1',`enchant_level`='{$AddItemEnchant}',`loc`='INVENTORY'" );
                    }
                }
                if ( $gdb[$sid]->affected() > 0 ) {
                    $l2_content .= "<div class='no_error'>Персонажу был добавлен предмет <b>ID: {$AddItemId} ({$AddItemCount}шт.)[заточка: +{$AddItemEnchant}]</b></div>";
                } else {
                    $l2_content .= "<div class='error'>Ошибка базы данных</div>";
                }
            }
            $l2_content .= "<center><a href='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&id={$charID}'><b>Назад</b></a></center><br>";
        }
        /*************************
        * Delete inventory
        *************************/
        if ( isset($_REQUEST["delete_items"]) ) {
            $gdb[$sid]->SuperQuery( $qList[$vgs]["delItemByOwner"], array("charID" => $charID) );
            $l2_content .= "<div class='error'> Удалено записей: ".$gdb[$sid]->affected()."</div><br>\n";
        }
        /*************************
        * Delete item
        *************************/
        if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "del_item" ) {
            $object_id = intval( $_REQUEST["object_id"] );
            $gdb[$sid]->SuperQuery( $qList[$vgs]["delItemByObjectID"], array("objectID" => $object_id) );
            $l2_content .= "<div class='error'> Удалено записей: ".$gdb[$sid]->affected()."</div><br>\n";
        }
        /*************************
        * Edit item
        *************************/
        if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "edit_item" ) {
            $edit_owner_id = intval( $_REQUEST["id"] );
            $edit_object_id = intval( $_REQUEST["object_id"] );
            $item_data = $gdb[$sid]->SuperFetchArray( $qList[$vgs]["getItemByObjectID"], array("objectID" => $edit_object_id) );
            //$item_data = $gdb[$sid]->fetch($item_select);
            $l2_content .= "
			<form method='post' action='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=update_item&id={$edit_owner_id}&object_id={$edit_object_id}'>
			<b>Edit Item</b> - ID {$item_data["item_id"]}<br>
			<b>Count</b>: <input type='text' value='{$item_data["count"]}' name='item_count' style='width: 50px;'> <b>Enchant</b>: <input type='text' value='{$item_data["enchant_level"]}' name='item_enchant' style='width: 50px;'> <input type='submit' value='Edit'><hr>";
        }
        /*************************
        * Update item
        *************************/
        if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "update_item" ) {
            $update_owner_id = intval( $_REQUEST["id"] );
            $update_object_id = intval( $_REQUEST["object_id"] );
            $update_count = intval( $_REQUEST["item_count"] );
            $update_enchant = intval( $_REQUEST["item_enchant"] );
            $update_count = ( $update_count > 0 ) ? $update_count:1;
            $gdb[$sid]->SuperQuery( $qList[$vgs]["setItem"], array("count" => $update_count, "enchant" => $update_enchant, "objectID" => $update_object_id) );
            if ( $gdb[$sid]->affected() ) {
                $l2_content .= "<div class='no_error'>Предмет успешно обновлен</div>\n";
            } else {
                $l2_content .= "<div class='error'>Ошибка при обновлении</div>\n";
            }
        }

вот коды удаления добавления редактирования

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

более менее в смысле теперь правильно показывается или еще что-то не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

278c030d67cd.png

 

сейчас вот так .только вот редактирование и добавление не работает. коды в 20 посте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуй вот так что выдаст, по идеи вот это должно пропасть `amount` AS `count`

 

  /*************************
        * Add Item
        *************************/
        $l2_content .= "
            <div align='left'>
            <form action='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&id={$charID}' method='post'>
            Добавить персонажу предмет   <b>Item ID</b>: <input type='text' name='AddItemId' style='width: 70px;'>   <b>Количество:</b> <input type='text' name='AddItemCount' style='width: 70px;'>    <b>Заточка:</b> <input type='text' name='AddItemEnchant' value='0' style='width: 70px;'> <b><i>одиночный</i></b> <input type='checkbox' value='1' name='AddItemSingle' title='Не складывается в кучу, а добавляется отдельно'> <input type='submit' value='Добавить' name='AddItem' class='button'></form>
            </div>";
        if ( isset($_POST["AddItem"]) ) {
            $AddItemId = intval( $_POST["AddItemId"] );
            $AddItemCount = intval( $_POST["AddItemCount"] );
            $AddItemEnchant = !empty( $_POST["AddItemEnchant"] ) ? intval( $_POST["AddItemEnchant"] ):0;
            $AddItemSingle = intval( $controller->set("AddItemSingle") );
            if ( empty($AddItemId) or $AddItemId == 0 )
                $l2_content .= "<div class='error'>Введите ID предмета</div>";
            elseif ( empty($AddItemCount) or $AddItemCount == 0 )
                $l2_content .= "<div class='error'>Введите количество предметов</div>";
            elseif ( $char_data["online"] == 1 )
                $l2_content .= "<div class='error'>Персонаж находится в игре</div>";
            else {
                if ( $AddItemSingle == "0" ) {
                    $add_query = $gdb[$sid]->query( "SELECT `object_id`,`amount` FROM `items` WHERE `owner_id`='{$charID}' AND `item_id`='{$AddItemId}' AND `loc`='INVENTORY'" );
                    if ( $gdb[$sid]->num_rows($add_query) > 0 ) {
                        $add_data = $gdb[$sid]->fetch( $add_query );
                        $gdb[$sid]->query( "UPDATE `items` SET `amount`=`amount`+{$AddItemCount} WHERE `owner_id`='{$charID}' AND `object_id`='{$add_data["object_id"]}'" );
                    } else {
                        list( $max_obj ) = $gdb[$sid]->fetch( $gdb[$sid]->query("SELECT MAX(`object_id`)+1 FROM `items`") );
                        $gdb[$sid]->query( "INSERT INTO `items` SET `owner_id`='{$charID}',`object_id`='{$max_obj}',`item_id`='{$AddItemId}',`amount`={$AddItemCount},`enchant_level`='{$AddItemEnchant}',`loc`='INVENTORY'" );
                    }
                } else {
                    for ( $i = 0; $i < $AddItemCount; $i++ ) {
                        list( $max_obj ) = $gdb[$sid]->fetch( $gdb[$sid]->query("SELECT MAX(`object_id`)+1 FROM `items`") );
                        $gdb[$sid]->query( "INSERT INTO `items` SET `owner_id`='{$charID}',`object_id`='{$max_obj}',`item_id`='{$AddItemId}',`amount`='1',`enchant_level`='{$AddItemEnchant}',`loc`='INVENTORY'" );
                    }
                }
                if ( $gdb[$sid]->affected() > 0 ) {
                    $l2_content .= "<div class='no_error'>Персонажу был добавлен предмет <b>ID: {$AddItemId} ({$AddItemCount}шт.)[заточка: +{$AddItemEnchant}]</b></div>";
                } else {
                    $l2_content .= "<div class='error'>Ошибка базы данных</div>";
                }
            }
            $l2_content .= "<center><a href='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&id={$charID}'><b>Назад</b></a></center><br>";
        }
        /*************************
        * Delete inventory
        *************************/
        if ( isset($_REQUEST["delete_items"]) ) {
            $gdb[$sid]->SuperQuery( $qList[$vgs]["delItemByOwner"], array("charID" => $charID) );
            $l2_content .= "<div class='error'> Удалено записей: ".$gdb[$sid]->affected()."</div><br>\n";
        }
        /*************************
        * Delete item
        *************************/
        if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "del_item" ) {
            $object_id = intval( $_REQUEST["object_id"] );
            $gdb[$sid]->SuperQuery( $qList[$vgs]["delItemByObjectID"], array("objectID" => $object_id) );
            $l2_content .= "<div class='error'> Удалено записей: ".$gdb[$sid]->affected()."</div><br>\n";
        }
        /*************************
        * Edit item
        *************************/
        if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "edit_item" ) {
            $edit_owner_id = intval( $_REQUEST["id"] );
            $edit_object_id = intval( $_REQUEST["object_id"] );
            $item_data = $gdb[$sid]->SuperFetchArray( $qList[$vgs]["getItemByObjectID"], array("objectID" => $edit_object_id) );
            //$item_data = $gdb[$sid]->fetch($item_select);
            $l2_content .= "
            <form method='post' action='{$_url}=chars&action=character&lid={$lid}&sid={$sid}&do=update_item&id={$edit_owner_id}&object_id={$edit_object_id}'>
            <b>Edit Item</b> - ID {$item_data["item_id"]}<br>
            <b>Count</b>: <input type='text' value='{$item_data["count"]}' name='item_count' style='width: 50px;'> <b>Enchant</b>: <input type='text' value='{$item_data["enchant_level"]}' name='item_enchant' style='width: 50px;'> <input type='submit' value='Edit'><hr>";
        }
        /*************************
        * Update item
        *************************/
        if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "update_item" ) {
            $update_owner_id = intval( $_REQUEST["id"] );
            $update_object_id = intval( $_REQUEST["object_id"] );
            $update_count = intval( $_REQUEST["item_count"] );
            $update_enchant = intval( $_REQUEST["item_enchant"] );
            $update_count = ( $update_count > 0 ) ? $update_count:1;
            $gdb[$sid]->SuperQuery( $qList[$vgs]["setItem"], array("count" => $update_count, "enchant" => $update_enchant, "objectID" => $update_object_id) );
            if ( $gdb[$sid]->affected() ) {
                $l2_content .= "<div class='no_error'>Предмет успешно обновлен</div>\n";
            } else {
                $l2_content .= "<div class='error'>Ошибка при обновлении</div>\n";
            }
        }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ошибка при добавлении итема

SELECT `object_id`,`amount` FROM `items` WHERE `owner_id`='268478223' AND `item_id`='57' AND `loc`='INVENTORY'

ошибка при редактировании

		SELECT `amount` AS `count`, `enchant` AS `enchant_level`,`item_type` AS `item_id` 
		FROM `items` 
		WHERE `object_id`='268478223'

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А у тебя получается только эти столбы

item_id

owner_id

item_type

amount

location

slot

enchant

 

object_id нет?

Изменено пользователем L2Banners

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...