Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2011, 00:03   #21
Hozy
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 14
По умолчанию

Возможно мы друг друга не поняли. Извините что вероятно я не внятно объяснялся. Опишу...Существует 4 расы (условно 1-2-3-4). При регистрации персонажа выбирается раса (одна из четырех). После завершения регистрации в инвентарь персонажа добавляется предмет (в нашем случае это рубаха). Надо сделать так, что бы расе 1 - присылалась одна рубаха имеющая одни показатели, расе 2 - присылалась рубаха с другими показателями.
А название вещи отображается в инвентаре персонажа. Да и при наведении на неё.
Hozy вне форума Ответить с цитированием
Старый 06.06.2011, 00:17   #22
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Hozy Посмотреть сообщение
Возможно мы друг друга не поняли. Извините что вероятно я не внятно объяснялся. Опишу...Существует 4 расы (условно 1-2-3-4). При регистрации персонажа выбирается раса (одна из четырех). После завершения регистрации в инвентарь персонажа добавляется предмет (в нашем случае это рубаха). Надо сделать так, что бы расе 1 - присылалась одна рубаха имеющая одни показатели, расе 2 - присылалась рубаха с другими показателями.
А название вещи отображается в инвентаре персонажа. Да и при наведении на неё.
Действия моего кода:
Проверяем выбранную расу ($user['rasa']){
если 1: вещь = "Рубашка Эльфа"; стоп;
если 2: вещь = "Рубашка Орка"; стоп;
если 3: вещь = "Рубашка Человека"; стоп;
если 4: вещь = "Рубашка Гоблина"; стоп;
}
Далее мы это дело заносим в БД, подставляя в запрос выбранную расу($user['rasa']) и соответствующую вещь($thing).

Что не так?
Andkorol вне форума Ответить с цитированием
Старый 06.06.2011, 00:26   #23
Hozy
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Действия моего кода:
Проверяем выбранную расу ($user['rasa']){
если 1: вещь = "Рубашка Эльфа"; стоп;
если 2: вещь = "Рубашка Орка"; стоп;
если 3: вещь = "Рубашка Человека"; стоп;
если 4: вещь = "Рубашка Гоблина"; стоп;
}
Далее мы это дело заносим в БД, подставляя в запрос выбранную расу($user['rasa']) и соответствующую вещь($thing).

Что не так?
Не работает. Вот что не так. Давайте я Вам может весь файл скину? Посмотрите - если есть время. Возможно я что то упускаю.
Hozy вне форума Ответить с цитированием
Старый 06.06.2011, 00:35   #24
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Hozy Посмотреть сообщение
Давайте я Вам может весь файл скину? Посмотрите - если есть время.
А давайте этим будет заниматься ваш программист..?
Вы попробовали - у вас не получается, завтра ваш программист сделает всё быстро и аккуратно.

PS: 23:35 все-таки...
Andkorol вне форума Ответить с цитированием
Старый 06.06.2011, 18:12   #25
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

PHP код:
switch ($user['rasa']) {
    case 
1:
        
mysql_query("INSERT INTO `inventory` (`rasa`,`glovk`,`klass`,`owner`,`ghp`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`present`) 
VALUES('" 
$user['rasa'] . "','3','1','" $i "','3','Рубашка Эльфа','4','1','1','roba1.gif','10' , 'Создатель') ;");
        break;
    case 
2:
        
mysql_query("INSERT INTO `inventory` (`rasa`,`ginta`,`klass`,`owner`,`ghp`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`present`)
VALUES('" 
$user['rasa'] . "','3','1','" $i "','3','Рубашка Орка','4','1','1','roba1.gif','10','Создатель') ;");
        break;
    case 
3:
        
mysql_query("INSERT INTO `inventory` (`rasa`,`gsila`,`glovk`,`ginta`,`kl ass`,`owner`,`ghp`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`present`)
    VALUES('" 
$user['rasa'] . "','1','1','1','1','" $i "','3' ,'Рубашка Человека','4','1','1','roba1.gif','10','Создатель') ;");
        break;
    case 
4:
        
mysql_query("INSERT INTO `inventory` (`rasa`,`gsila`,`klass`,`owner`,`ghp`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`present`)
    VALUES('" 
$user['rasa'] . "','3','1','" $i "','5','Рубашка Гоблина','4','1','1','roba1.gif','10','Создатель') ;");
        break;


Последний раз редактировалось graymaster; 06.06.2011 в 18:14.
graymaster вне форума Ответить с цитированием
Старый 06.06.2011, 23:07   #26
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Боже, сколько условий, сколько переборов.. Профессионалы, блин.

Самый грубый пример:

PHP код:
$items_by_race = array(
    
1=>array(
        
'id'=>1,
        
'race'=>1,
        
'name'=>'Рубашка эльфа',
        
'type'=>4,
        
'mass'=>1,
        
'cost'=>1,
        
'img'=>'roba1.gif',
        
'maxdur'=>10,
    ),
    
2=>array(
        
'id'=>2,
        
'race'=>2,
        
'name'=>'Рубашка орка',
        
'type'=>4,
        
'mass'=>1,
        
'cost'=>1,
        
'img'=>'roba2.gif',
        
'maxdur'=>10,
    ),
    
3=>array(
        
'id'=>3,
        
'race'=>3,
        
'name'=>'Рубашка человека',
        
'type'=>4,
        
'mass'=>1,
        
'cost'=>1,
        
'img'=>'roba3.gif',
        
'maxdur'=>10,
    ),
    
4=>array(
        
'id'=>4,
        
'race'=>4,
        
'name'=>'Рубашка гоблина',
        
'type'=>4,
        
'mass'=>1,
        
'cost'=>1,
        
'img'=>'roba4.gif',
        
'maxdur'=>10,
    ),
);

mysql_query("INSERT INTO `inventory` (`rasa`,`glovk`,`klass`,`owner`,`ghp`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`present`)
 VALUES("
.$race.",3,1,".$user_id.",3,'".$items_by_race[$race]['name']."',".$items_by_race[$race]['type'].",".$items_by_race[$race]['mass'].",".$items_by_race[$race]['cost'].",'".$items_by_race[$race]['img']."',".$items_by_race[$race]['maxdur']." ,'Создатель')"); 
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 06.06.2011, 23:29   #27
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Вот пример чуток получше, хотя очень далёк от совершенства:

PHP код:
class User {
    public 
$id;
    public 
$name;
    public 
$race;

    public function 
__construct($id,$name,$race)
    {
        
$this->id $id;
        
$this->name $name;
        
$this->race $race;
    }
}

class 
Item {
    public 
$id;
    public 
$race;
    public 
$name;
    public 
$glovk;
    public 
$klass;
    public 
$type;
    public 
$ghp;
    public 
$mass;
    public 
$cost;
    public 
$img;
    public 
$maxdur;

    public function 
__construct($id,$race,$glovk,$klass,$ghp,$name,$type,$mass,$cost,$img,$maxdur)
    {
        
$this->id $id;
        
$this->race $race;
        
$this->glovk $glovk;
        
$this->klass $klass;
        
$this->ghp $ghp;
        
$this->name $name;
        
$this->type $type;
        
$this->mass $mass;
        
$this->cost $cost;
        
$this->img $img;
        
$this->maxdur $maxdur;
    }
}

class 
Inventory_Item {
    public 
$item;
    public 
$owner;
    public 
$present;

    public function 
__construct($item,$owner,$present='')
    {
        
$this->item $item;
        
$this->owner $owner;
        
$this->present $present;
    }

    public function 
save()
    {
        
$args = array(
            
$this->item->race,
            
$this->item->glovk,
            
$this->item->klass,
            
$this->owner->id,
            
$this->item->ghp,
            
"'".$this->item->name."'",
            
$this->item->type,
            
$this->item->massa,
            
$this->item->cost,
            
"'".$this->item->img."'",
            
$this->item->maxdur,
            
"'".$this->present."'"
        
);
        
mysql_query("INSERT INTO `inventory` (`rasa`,`glovk`,`klass`,`owner`,`ghp`,`name`,`type`,`massa`,`cost`,`img`,`maxdur`,`present`)
                    VALUES("
.implode(', ',$args).")");
    }

}

$user = new User(1,'Player',1);

$item = new Item(1,1,'Рубашка эльфа',4,1,1,'roba1.gif',10);
$items_by_race[$item->race] = $item;
$item = new Item(2,2,'Рубашка орка',4,1,1,'roba2.gif',10);
$items_by_race[$item->race] = $item;
$item = new Item(3,3,'Рубашка человека',4,1,1,'roba3.gif',10);
$items_by_race[$item->race] = $item;
$item = new Item(4,4,'Рубашка гоблина',4,1,1,'roba4.gif',10);
$items_by_race[$item->race] = $item;

$inv_item = new Inventory_Item($items_by_race[$user->race],$user,'Создатель');
$inv_item->save(); 
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 06.06.2011 в 23:32.
Johnatan вне форума Ответить с цитированием
Старый 07.06.2011, 14:41   #28
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Да-да ... вот и до Entity добрались )))) Посоветовали бы хоть где-нибудь фильтровать данные вроде mysql_real_escape string, а вообще PDO использовать надо и prepare statements.
Кстати для таких целей я бы лучше хранимую процедуру написал ... думаю там потом еще условий в любом случае прибавится, это выглядит значительно более органично.
Если вопрос еще актуален, вечером могу набросать.
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при добавлении данных в бд prizrak1390 PHP 3 29.07.2010 22:47
Ошибка при добавлении данных Ehha1234 БД в Delphi 0 19.06.2010 20:33
Ошибка при добавлении в базу Ele БД в Delphi 4 20.04.2010 13:22
Ошибка при добавлении запроса KARUSHEV Помощь студентам 3 27.01.2010 08:45
Проблема при добавлении в БД Oleg Romanchuk БД в Delphi 2 12.01.2009 12:21