2017-01-08 1 views
2

У меня есть группа пользователей в таблице базы данных (с именем «пользователи»), каждый пользователь имеет свойства, хранящиеся в столбцах таблицы: id, username , first_name, last_name и т. д.Php push пользовательский массив в пользовательский массив и цикл через пользователей и пользовательские данные (свойства)

Когда пользователь вошел в систему, его данные извлекаются из базы данных и отображаются в таблице HTML; Для этого я сделал функцию (внутри файла functions.php):

function user_data() { 
    $users = array(); 
    $func_num_args = func_num_args(); 
    $func_get_args = func_get_args(); 
    if ($func_num_args > 1) { 
    unset($func_get_args[0]); 
    $fields = '`' . implode('`, `', $func_get_args) . '`'; 
    } 
    $query = "SELECT $fields FROM users"; 
    $result = query($query); 
    $col = mysqli_fetch_assoc($result); 
    array_push($users, $col); 

    print_r($users); 
    return $users; 
} 

А затем на странице пользователя:

$user_data = $user_data[0]; 
echo "<span>Welcome, " . $user_data['first_name'] . " " . $user_data['last_name'] . "!</span>"; 

Есть 2 пользователей в базе данных все же $ пользователей массива содержит только один пользователь, как print_r ($ пользователей) показывает:

Array 
(
[0] =&gt; Array 
    (
     [username] =&gt; ajax 
     [first_name] =&gt; Razvan 
     [last_name] =&gt; Zamfir 
     [email] =&gt; [email protected] 
     [telefon] =&gt; 0743127315 
     [oras] =&gt; Bucuresti 
     [adresa] =&gt; Strada Alexandru Ipsilanti nr. 6, bloc 29E, sc. B, et. 3, ap. 83. 
    ) 
); 

мне нужно перебрать все пользователей и через каждого пользователя свойства, чтобы отобразить общую таблицу, которая отображает имя пользователя, фамилию и и кнопку Изменить на каждой строке.

Что я делаю неправильно?

ответ

2

ли итерирования строки из полей, заданных по Вашему запросу, то Fetch каждый из них с FETCH_ASSOC

function user_data() { 
    $users = array(); 
    $func_num_args = func_num_args(); 
    $func_get_args = func_get_args(); 
    if ($func_num_args > 1) { 
    unset($func_get_args[0]); 
    $fields = '`' . implode('`, `', $func_get_args) . '`'; 
    } 

//$result = query($query); 
$conn = new mysqli("yourhost","username","pass", "dbname"); 
    $query = "SELECT $fields FROM users"; 
$result=$conn->query($query); 
if ($result->num_rows > 0) { 
while ($row =$result->fetch_assoc()) { 
     array_push($users,$row); 
    } 

    /* free result set */ 
    mysqli_free_result($result); 

} 
    print_r($users); 
    return $users; 
} 

Затем итерации возвращаемый массив из user_data() метод для извлечения значений.

var $usr = user_data();  
foreach ($usr as $arr){ 
foreach ($arr as $key => $value){ 
    echo $key ." ".$value; 
} 
    } 
+0

Я реализовал код, указанный выше, и это дает ошибку: Предупреждение: mysqli_query() ожидает параметр 1, чтобы быть MySQLi, нуль дано. –

+0

Привет, но тебе действительно нужно было опустить меня, пока я единственный, кто пытался тебе помочь .. :). Btw, первый аргумент в * mysqli_query() *, который является '$ your_connection_var', является вашим * mysqli * объектом, таким как' $ conn = new mysqli («ваш хост», «имя пользователя», «pass», «dbname») ; ', передать этот' $ conn' в. Во всяком случае, я отредактировал свой ответ, чтобы упростить его. –

+0

Я думаю, что вышеупомянутый ответ был верным, вам нужно запустить цикл при извлечении данных из БД и сохранить в массиве пользователей. В противном случае вы ссылаетесь на пример кода: 'while ($ row = mysql_fetch_assoc ($ result)) { $ my_arary [] = $ row; print_r ($ row); } ' –

 Смежные вопросы

  • Нет связанных вопросов^_^