winter37rus 1 Опубликовано 31 августа, 2015 Всем ку! Обьясню сразу У меня не выводит список вещей на персе в админке и ЛК Помогите разобраться с таблицами и колонками куда чего пихать не пойму в 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'> </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; ?> Всю инфу выложил прошу помощи ребята выручайте! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 Заплачу 1000рублей тому кто решит мою проблему! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 у тебя бд вообще не люцеровское не думал просто таблицу с люцеры закинуть? Или в твоей таблийце уже что-то важное записано? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 (изменено) у тебя бд вообще не люцеровское не думал просто таблицу с люцеры закинуть? Или в твоей таблийце уже что-то важное записано? угу есть важные вещи. хотелось бы просто l2j_lucera3 переписать. изменить под мои таблицы! да и нет у меня таблицы с люцеры!все что дали с люцерой всю установил Изменено 4 сентября, 2015 пользователем Dimonich Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 угу есть важные вещи. хотелось бы просто l2j_lucera3 переписать. изменить под мои таблицы! да и нет у меня таблицы с люцеры!все что дали с люцерой всю установил Так у тебя люцера 3? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 Так у тебя люцера 3? да Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 Попробуй так "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", Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 ошибка удалил items.loc стало работать но все неправильно отображает где count пишет id адены а в заточке показывает колличество вот мои таблицы item_id owner_id item_type amount location slot enchant Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 (изменено) таблицы item_id owner_id item_type amount location slot enchant Напиши что за что отвечает вот слот например это что? Да итемс лок лишнее не увидел Изменено 4 сентября, 2015 пользователем L2Banners Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 вот мои таблицы item_id owner_id item_type amount location slot enchant Напиши что за что отвечает вот слот например это что? Да итемс лок лишнее не увидел я хз как узнать?. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 я хз как узнать?. Посмотреть значения в талицах и понять что она показывает. хотя бы что у тебя за таблица вместо count Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 Посмотреть значения в талицах и понять что она показывает. хотя бы что у тебя за таблица вместо count хзхзхз короче у меня в инвентаре адена в колличестве 998 штук .и хомка точеная на +10 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 Понял Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 "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", Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 (изменено) 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'> </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>"; } } } Изменено 4 сентября, 2015 пользователем Dimonich Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 У меня в профиле контакты, можешь написать в скайп или в аську, быстрее будет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 в данный момент на работе. скайпы и аськи ок и вк и прочие вещи у нас в рабочее время запрещены. нехочу получить люлей от начальства. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 /************************** 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'> </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>";}}} Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 ну стало более менее но при попытке редактировать пишет ошибку SELECT `amount` AS `count`, `enchant` AS `enchant_level`,`item_type` AS `item_id` FROM `items` WHERE `object_id`='268478223' Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 /************************* * 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"; } } вот коды удаления добавления редактирования Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 более менее в смысле теперь правильно показывается или еще что-то не так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 сейчас вот так .только вот редактирование и добавление не работает. коды в 20 посте Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 Попробуй вот так что выдаст, по идеи вот это должно пропасть `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"; } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
winter37rus 1 Опубликовано 4 сентября, 2015 ошибка при добавлении итема 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' Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
L2Banners 664 Опубликовано 4 сентября, 2015 (изменено) А у тебя получается только эти столбы item_id owner_id item_type amount location slot enchant object_id нет? Изменено 4 сентября, 2015 пользователем L2Banners Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты