показать массив из базы данных - PullRequest
0 голосов
/ 22 марта 2019

У меня есть эта БД

id | domain    | whois_server         |
---------------------------------------
1  | ac        | whois.nic.ac         |
2  | ae        | whois.nic.ae         |
3  | id        | whois.pandi.or.id    |

Как показать массив массива без идентификатора?

array (
    'ac' => 'whois.nic.ac',
    'ae' => 'whois.nic.ae',
    'id' => 'whois.pandi.or.id',
)

Я сделал следующий код:

$sql = "SELECT * FROM whois_server ";
$result = $db->prepare($sql);
$result->execute();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $whoisservers =  array_merge($whoisservers, array_map('trim', explode(",", $row[1])));
}

но то, что появляется:

array (
    [0] => whois.nic.ac
    [1] => whois.nic.ae
    [2] => whois.pandi.or.id
)

Ответы [ 5 ]

2 голосов
/ 22 марта 2019
$sql = "SELECT * FROM whois_server ";
$result = $db->prepare($sql);
$result->execute();
$dataReturn = [];
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
      $dataReturn[$row['domain']] = $row['whois_server'];
}
print_r($dataReturn);
1 голос
/ 22 марта 2019

Немного отличается от других ответов решением с fetchAll и PDO::FETCH_KEY_PAIR:

$sql = "SELECT domain, whois_server FROM whois_server";
$result = $db->prepare($sql);
$result->execute();
$whoisservers = $result->fetchAll(PDO::FETCH_KEY_PAIR);
print_r($whoisservers);
1 голос
/ 22 марта 2019
$whoisservers = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
  $whoisservers[$row["domain"]] = $row["whois_server"];
}

будет проще (и понятнее).

И, как уже упоминалось в комментариях, в SQL не выбирайте ненужные поля.

1 голос
/ 22 марта 2019

Добавьте к массиву $whoisservers, нажав индекс как $row['domain'] и значение как $row['whois_server'].

$whoisservers = [];
$sql = "SELECT * FROM whois_server ";
$result = $db->prepare($sql);
$result->execute();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $whoisservers[$row['domain']] =  $row['whois_server'];
}
print_r($whoisservers);
1 голос
/ 22 марта 2019

В вашем цикле вы можете добавить ключ к переменной $whoisseervers для каждого значения:

$sql = "SELECT domain, whois_server FROM whois_server";
$result = $db->prepare($sql);
$result->execute();

$whoisservers = [];
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $whoisservers[$row['domain']] =  $row['whois_server'];
}

print_r($whoisservers);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...