Получить элемент из массива PhP - PullRequest
0 голосов
/ 26 октября 2018

Я получаю данные из базы данных в массиве PhP data_areas вот так:

$query_area = "SELECT name FROM area where id>0";
$result = pg_query($con, $query_area) or die("Cannot execute query: $query_area\n");

if(pg_num_rows($result))
{
     $data_areas=array();
     while($row=pg_fetch_row($result))
     { 
           $data_areas[] = array(
           'name'=>$row[0]
           );
     }         
     pg_free_result($result);
     pg_close($con);

     $area1=$data_areas[0];
     $area2=$data_areas[1];         
    }    

Как извлечь элемент из массива в разные переменные, например, я пытался извлечь данные из переменных area1 и area2. Спасибо

Ответы [ 4 ]

0 голосов
/ 26 октября 2018

Вы пишете так
$row[0]
Попробуйте написать это
$row['name']

0 голосов
/ 26 октября 2018

Попробуйте ниже код

$query_area = "SELECT name FROM area where id>0";
$result = pg_query($con, $query_area) or die("Cannot execute query: $query_area\n");

if(pg_num_rows($result))
{
     $data_areas=array();
     while($row=pg_fetch_row($result))
     { 
           $data_areas[] = array(
           'name'=>$row[0]
           );
     }         
     pg_free_result($result);
     pg_close($con);

     $area1=isset($data_areas[0]['name']) ?$data_areas[0]['name'] : '' ;
     $area2= isset($data_areas[1]['name']) ? $data_areas[1]['name'] : '';         
    }    
0 голосов
/ 26 октября 2018

Итак, обо всем по порядку. Прежде всего вам нужно настроить массив, чтобы вы извлекали данные из базы данных.

Внутри цикла while и учитывая, что вы знаете, что каждая строка имеет в качестве связанного значения, вы можете сделать что-то вроде:

$data_areas[] = array(
    'name' => $row[0],
    'surname' => $row[1],
    'email' => $row[2]
);

Это создаст ваш массив со всеми значениями.

Теперь, если вы хотите получить доступ / назначить его из этих значений массива, я уверен, что вам понадобятся новые выделенные массивы, поскольку ваш запрос извлекает все данные из таблицы (небольшое примечание, что вам не нужно where id>0 в качестве идентификатора является автоматическим приращением, поэтому оно всегда будет больше 0)

Сказав, что мы можем двигаться вперед.

Для доступа к этим данным вы можете просто попробовать:

print_r($data_areas['name']); 

Это вернет вам массив всех имен, которые у вас есть. Таким образом, вам не нужна новая таблица, вы можете использовать уже имеющуюся у вас.

0 голосов
/ 26 октября 2018

Вы можете написать так;

$data_areas[0]['name']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...