Заточка Оружия

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

limon007

Новичок
Репутация
0 / 256
Суть проблемы такова что допустим при каждой заточке оружия надо чтоб вещь ломалась на 10 ед.
Как правильно занести в БД ? Сам не разберусь чё то.
Код должен быть примерно таков :
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'> mysql_query("UPDATE `objects`SET`inf`='$inf['0']."|".$inf['1']."|".$inf['2']."|".$inf['2']."|".$inf['4']."|".$inf['5']."|".$inf['6']."|".$inf['7']'WHERE id='".$id."' ");</div>
Там где $inf['7'] должно быть -10 ед. как правильно оформить ?
Заранее спс
 
Неа не получается ( Запрос изменяет параметры оружие вообще на лабуду какую то
как запрос то правильно написать ?
 
1) У тебя в твоем примере не было пробелов перед SET и еще лабуда была с кавычками.
Вот так правильно:

Код:
mysql_query("UPDATE `objects` SET inf='".$inf['0']."|".$inf['1']."|".$inf['2']."|".$inf['2']."|".$inf['4']."|".$inf['5']."|".($inf['6']-10)."|".$inf['7']."' WHERE id='".$id."'");

2) параметры запроса:

inf[0] - название предмета как в таблице items (англ.)
inf[1] - Название предмета
inf[2] - Цена предмета
...
inf[6] - Текущий износ вещи
inf[7] - Максимальный износ вещи

п.с. На счет того чтобы при заточке износ добавлялся это уже помоч не могу т.к. данные не были приведены!
 
неа не канает (
Вот такая лабуда происходит
Гос. цена: кр.
Тип предмета: Оружие
Долговечность предмета: -10/
То есть уберается все данные о оружие и т.д.
 
Так правильно! ты inf[0] ... inf[7] не определяешь перед запросом!!! У тебя они и выставляются пустые!
 
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'> $infs = $inf['0']."|".$inf['1']."|".$inf['2']."|".$_POST['grav_text']."|".$inf['4']."|".$inf['5']."|".$inf['6']."|".$inf['7'];</div>
Так что ли ?
 
Если вещь определяем вещь у игрока то надо писать:
Код:
$item = mysql_real_escape_string(mysql_query("SELECT `inf' FROM `objects` WHERE user='".$stat['user']."' AND id='".$id."'");
$inf=explode("|",$item['inf']);
Дальше нам доступен массив inf[0]...inf[7]
 
А вообще пиши тут весь код, а то разговор ниочем!
 
Кусок кода отвечающий за заточку :
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>// ----- # Апгрейд # ----- //
if ($act=="upgrade") {
if($stat[proff]==2){
$S = mysql_query("SELECT * FROM `objects` WHERE id='".$id."' ");
while($dat = mysql_fetch_array($S)){
$id=$dat["id"];
$user=$dat["user"];
$obj_inf=explode("|",$dat['inf']);
$min_demg=$dat["min_d"];
$max_demg=$dat["max_d"];
$min_upg=rand($min_demg+3,$min_demg+3);
$max_upg=rand($max_demg+3,$max_demg+3);
}
if ($stat["user"]!="$user") {$msg = "Вещь не найдена в вашем рюкзаке";

}
else if ($stat["credits"]<500) {$msg = "У вас недостаточно денег";
}
else {

mysql_query("UPDATE `person` SET `credits` = `credits`-500 WHERE `user` = '$stat[user]' ");
mysql_query("UPDATE `objects` SET `min_d` = '$min_upg', `max_d` = '$max_upg' WHERE id='".$id."' ");
mysql_query("UPDATE `objects` SET inf='".$inf['0']."|".$inf['1']."|".$inf['2']."|".$inf['2']."|".$inf['4']."|".$inf['5']."|".($inf['6']-10)."|".$inf['7']."' WHERE id='".$id."'");
$msg = "Заточка прошла успешно";
require_once("../function/chat_insert.php");
insert_msg("Заточка ".$obj_inf['1']." прошла успешно. Минимальный урон стал $min_upg, а максимальный $max_upg ","","","1",$stat['user'],"",$stat['room']);

}
}else $msg = "Модернизировать может только кузнец!";
}</div>
Вот в принципе.
 
Саня а ты хоть пытался учить php? Только честно? Не ужели нельзя увидеть просто банальнейшие ошибки? Ты вообще понимаешь то что тебе пишет народ?
Вот давай пожалуйста объясни вот эту строчку кода и я тебе тогда скажу что тебе надо сделать чтобы все работало:
Код:
 mysql_query("UPDATE `objects` SET inf='".$inf['0']."|".$inf['1']."|".$inf['2']."|".$inf['2']."|".$inf['4']."|".$inf['5']."|".($inf['6']-10)."|".$inf['7']."' WHERE id='".$id."'");

Ребят, прошу не говорить что у него за ошибка, пока он не объяснит.

P.S. Кстати даже в той строке кода которую я написал есть ошибка, но она не главная.
 
перед запросом
$inf['7']=$inf['7']-10;

Почти верно :)
Делаем так:
Код:
$inf['7']-=10;
и
Код:
mysql_query("UPDATE objects SET inf='".$inf['0']."|".$inf['1']."|".$inf['2']."|".$inf['3']."|".$inf['4']."|".$inf['5']."|".$inf['6']."|".$inf['7']."' WHERE id='".$id."'");
 
Почти верно :)
Делаем так:
Код:
$inf['7']-=10;
и
Код:
mysql_query("UPDATE objects SET inf='".$inf['0']."|".$inf['1']."|".$inf['2']."|".$inf['3']."|".$inf['4']."|".$inf['5']."|".$inf['6']."|".$obj_inf['7']."' WHERE id='".$id."'");

Во-первых, я кажется попросил, во-вторых, это не верно с учетом его кода!
 
Во-первых, я кажется попросил, во-вторых, это не верно с учетом его кода!

Какой смысл викторину устраивать? Если человек ошибся - укажи на ошибку и помоги исправить, не все же тут спецы...иначе никто бы и не просил помощи.

На счет моего кода, ну расскажи тогда в чем же он неверен :)
Для начала не мешало бы его опробовать, прежде чем что-то заявлять. У меня давно уже эта функция реализована и все работает прекрасно )

P.S. если имеется ввиду описка ввиде ".$obj_inf['7'].", недоглядел....у меня запрос с другими переменными идет ) исправлено
 
Спасибо всем за помощь Макс php учил c запросом разобрался. Ребят на будущее вот код кому надо :
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'> $obj_inf['7']-=10;
mysql_query("UPDATE objects SET inf='".$obj_inf['0']."|".$obj_inf['1']."|".$obj_inf['2']."|".$obj_inf['3']."|".$obj_inf['4']."|".$obj_inf['5']."|".$obj_inf['6']."|".$obj_inf['7']."' WHERE id='".$id."'");</div>
 
Какой смысл викторину устраивать? Если человек ошибся - укажи на ошибку и помоги исправить, не все же тут спецы...иначе никто бы и не просил помощи.

На счет моего кода, ну расскажи тогда в чем же он неверен :)
Для начала не мешало бы его опробовать, прежде чем что-то заявлять. У меня давно уже эта функция реализована и все работает прекрасно )

P.S. если имеется ввиду описка ввиде ".$obj_inf['7'].", недоглядел....у меня запрос с другими переменными идет ) исправлено

Именно obj_inf и имелся ввиду, просто я понимаю когда какая-то реально сильная загвостка, но тут надо было просто просмотреть маленький кусочек кода и, на даже примерном уровне, его понимать, переменные это одна из первых(а в большенстве первая) глава в книгах по программированию. Просто хочется не просто давать ответы всем, а делать так чтобы они сами пытались их исправить, а уж такую ошибку исправить можно было, надо было всеголишь капельку старания.
 
Именно obj_inf и имелся ввиду, просто я понимаю когда какая-то реально сильная загвостка, но тут надо было просто просмотреть маленький кусочек кода и, на даже примерном уровне, его понимать, переменные это одна из первых(а в большенстве первая) глава в книгах по программированию. Просто хочется не просто давать ответы всем, а делать так чтобы они сами пытались их исправить, а уж такую ошибку исправить можно было, надо было всеголишь капельку старания.

Трудно с этим поспорить, я так же за то, чтобы народ самостоятельно пытался найти решение проблем, а не клянчил готовые решения. Но всякое бывает, порой "глаз замыливается" и не видет очевидное :)
P.S. Но, в данном случае, что-то мне подсказывает, что Саня не знал о такой возможности задания переменной $obj_inf['7'] -=10 ; ....раз пытался решить проблему в запросе к базе. Зато теперь знает *wink*
 
Да сначала я и лепил его но чё то на переменую $inf потянуло)
 
aoth_by_Fatality ест ета мод ( заточка оружие )
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху