Scripts in databasevelden

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Hans Kamp
Berichten: 470
Lid geworden op: 17 jan 2004, 08:39
Locatie: Enschede

Scripts in databasevelden

Bericht door Hans Kamp » 09 mei 2004, 14:25

Ik zat te denken of het soms zinvol is om scripts in een database-veld te stoppen. Bijv. als ik in een RPG MOD een serie items heb die ik aantrek of draag. Wat moet er dan bij een bepaald item gebeuren?

Bijv.

Code: Selecteer alles

CREATE TABLE phpbb_rpg_item ( 
  name varchar(255) NOT NULL default '',
  onEquip longtext NOT NULL default '',
  isUnequippable longtext NOT NULL default'',
  ...
);

INSERT INTO phpbb_rpg_item VALUES ('Short Sword', '
  // $chardata bevat karaktergegevens
  $chardata['phys_min_damage'] = $min_damage;
  $chardata['phys_max_damage'] = $max_damage;
  update_char_data($chardata);
',
'item_is_cursed()'); 

En dan ergens in een PHP-script:

Code: Selecteer alles

// equip weapon
$sql = "select onEquip from phpbb_rpg_item where name = $weapon_name"; 

if( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(GENERAL_ERROR, 'Could not query inventory data', '', __LINE__, __FILE__, $sql); 
} 
         
$row = $db->sql_fetchrow($result); 

eval($row['onEquip']);

Code: Selecteer alles

// try to unequip
$sql = "select isUnequippable from phpbb_rpg_item where name = $weapon_name"; 

if( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(GENERAL_ERROR, 'Could not query inventory data', '', __LINE__, __FILE__, $sql); 
} 
         
$row = $db->sql_fetchrow($result); 

if (!eval($row['isUnequippable']))
{
  echo 'Not possible to unequip';
}
Is het zinvol om zoiets te schrijven? Het resultaat zou moeten zijn dat de minimum en maximum damage van het karakter wordt aangepast omdat er een ander item, in dit geval het item met de naam $weapon_name.

Witch hazel
Berichten: 39
Lid geworden op: 10 mei 2004, 18:37
Contacteer:

Bericht door Witch hazel » 04 jun 2004, 15:32

Het lijkt me niet zonvol om scripts in een database te plaatsen. Hiervoor kun je een bestand maken genaamd functies. Dit is een bestand waar je veel terug komende handelingen in verwerkt. Elke pagina waar je de handeling dan nodig hebt begin je met:

Include ("functies.php");

Meer over de syntax function kun je lezen op http://www.php.net

Hoop hiermee je vraag te hebben beantwoord.

Gesloten