Массив и SQLite3

MrForter

Новичок
Я делаю плагин пммп, знаю как пользоваться sqlite3, вот и я хочу сохранить значения в массив, а вот с этим у меня проблемы... Я пробовал через цикл, вроде как работает, но вывести не получается, помогите сделать пожалуйста.
Код:
public $fraction = array();

function getFraction(Player $player){
  $username = strtolower($player->getName());
  $result = $this->fraction->query("SELECT `faction` FROM `fraction` WHERE `username` = '". $username ."'")->fetchArray(SQLITE3_ASSOC);
  return $result['faction'];
}

function onChat(Player $player){//лишний код не важен
  $username = strtolower($player->getName());
  $fraction = $this->fraction[$username];
  $this->chat("у игрока фракция: ". $fraction." Заножу и вас);
  $this->fraction->query("INSERT INTO `fraction` (`faction`, `username`) VALUES ('$fraction', '$username');");
}

function onCommand(Player $player){//отсюда мне нужен забрать значания, а потом принести в onChat
  $username = strtolower($player->getName());
  while($row = $this->getFraction($player)) {
    $this->fraction[$username] = $row['faction'];
  }
}
Помогите...
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Во-первых ты не массив сохраняешь, а строку.
Во-вторых, у тебя что-то не наблюдается связи user<>fraction в таблице
 

MrForter

Новичок
Во-первых ты не массив сохраняешь, а строку.
Во-вторых, у тебя что-то не наблюдается связи user<>fraction в таблице
Я сократил код вот и все, там это лишение не надо, просто как перенести строку от определённого игрока?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ваш вопрос не очень понятен, куда перенести.

Вы должны вставить данные player<->fraction, далее выбрать fraction WHERE player=...

Теперь смотрите чего у вас не хватает
 

MrForter

Новичок
Ваш вопрос не очень понятен, куда перенести.

Вы должны вставить данные player<->fraction, далее выбрать fraction WHERE player=...

Теперь смотрите чего у вас не хватает
В функции onCommand() я занес в массив значения из бд, я хочу перенести это значение в onChat() и все
 

MrForter

Новичок
public $fraction = array(); function getFraction(Player $player){ $username = strtolower($player->getName()); $result = $this->fraction->query("SELECT `faction` FROM `fraction` WHERE `username` = '". $username ."'")->fetchArray(SQLITE3_ASSOC); return $result['faction']; } function onChat(Player $player){//лишний код не важен $username = strtolower($player->getName()); $fraction = $this->fraction[$username]; $this->chat("у игрока фракция: ". $fraction." Заножу и вас); $this->fraction->query("INSERT INTO `fraction` (`faction`, `username`) VALUES ('$fraction', '$username');"); } function onCommand(Player $player){//отсюда мне нужен забрать значания, а потом принести в onChat $username = strtolower($player->getName()); while($row = $this->getFraction($player)) { $this->fraction[$username] = $row['faction']; } }
И да код я изменил...
 

MrForter

Новичок
Ваш вопрос не очень понятен, куда перенести.

Вы должны вставить данные player<->fraction, далее выбрать fraction WHERE player=...

Теперь смотрите чего у вас не хватает
Как вы говорите это не просто, мне потом после того перенесу еще и в бд это значения вставлять, это то проблема, помогите...
 

WMix

герр M:)ller
Партнер клуба
Код:
 while($row = $this->getFraction($player)) {
    $this->fraction[$username] = $row['faction'];
  }
PHP:
$this->fraction[$username][] =...
print_r($this->fraction)
или что ты хочешь?
 

MrForter

Новичок
Код:
 while($row = $this->getFraction($player)) {
    $this->fraction[$username] = $row['faction'];
  }
PHP:
$this->fraction[$username][] =...
print_r($this->fraction)
или что ты хочешь?
Как в коже написал с onCommand перенести в onChat, я же потом снова заношу в бд когда перенесу, надо взять еще через цикл в оnCommand, потом перейти этот $this->fraction[] в onChat, и в onChat снова в бд
 
Последнее редактирование:
Сверху