2015-06-25 2 views
0

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

В одном DBcommand.php файл у меня есть:

class DBcommand Extends PdoDB { 
    public function selectAll() { 
     $stmt = $this->dbh->prepare("SELECT hwid,username,pcname FROM users"); 
     $stmt->execute(); 
     $columnn = array(); 
     $result_returned = $stmt->fetchAll(PDO::FETCH_CLASS); 
     foreach($result_returned as $key=>$result) { 
     $columnn['hwid'] = $result->hwid; 
     $columnn['username'] = $result->username; 
     $columnn['pcname'] = $result->pcname; 
     //return $columnn; 
     //$columnn= new us($result->hwid,$result->username,$result->pcname); 
     } 
     return $columnn; 
    } 
} 

И я пытаюсь получить свой результат на другой странице под названием view.php

$cmd = new DBcommand(); 
//$get = $cmd->getInfo('1234'); 
$result=$cmd->selectAll(); 

echo '<tr ><td ><input type="checkbox" class="checkthis" /></td><td>' . $result['hwid'] . '</td><td style="cursor:pointer;" onclick="alert(\'ok\')">' . $result['username'] . '</td><td style="cursor:pointer;" onclick="alert(\'ok\')">' . $result['pcname']. '</td><td><p data-placement="top" data-toggle="tooltip" title="Edit"><button class="btn btn-primary btn-xs" data-title="Edit" data-toggle="modal" data-target="#edit" ><span class="glyphicon glyphicon-download-alt" onclick="myAjax()"></span></button></p></td> 
    <td><p data-placement="top" data-toggle="tooltip" title="Delete"><button class="btn btn-danger btn-xs" data-title="Delete" data-toggle="modal" data-target="#delete" ><span class="glyphicon glyphicon-trash"></span></button></p></td> 
</tr>'; 
             ?> 

вопрос я есть, мой selectall работает, но мой view.php получает только 1 информацию из нее, либо с первой, либо с последней.

Даже если я попытаюсь сделать какое-то время на части view.php, он никогда не получит никакого результата.

позволяет сказать, что мой selectAll возвращает массив ('123', 'azerty', azerty '); и массив ('6547', 'qwertty', qwerty ');, мой print_r от selectAll покажет мне, что я хочу увидеть, но мой результат из view.php покажет только один из этих 2 результатов.

-

Я даже пытался создать еще один класс, который берет $ это -> _ HWID, поэтому я буду использовать этот класс позже, но вратаря управлять, так как его объекта в результате строки.

-

Застрять, спасибо за вашу помощь.

+0

Вы переписываете значения в цикле 'foreach'. И почему вы вводите объект 'PdoDB' в' DBcommand', который вы распространяете, расширяя его. – Daan

+0

Да, спасибо, я исправил вещь БД, это было из-за старого теста. Да, в этом примере, я перезаписываю, но даже если я верну его в foreach, результат будет напоминать то же самое – snow

ответ

-1

Ваш foreach всегда заполняет только один элемент массива.

попробуйте вместо этого:

foreach($result_returned as $key=>$result) { 
    $columnn[$key]['hwid'] = $result->hwid; 
    $columnn[$key]['username'] = $result->username; 
    $columnn[$key]['pcname'] = $result->pcname; 
} 
+0

Как получить результат от этого на стороне view.php? – snow

+0

Nevermind, я нашел его, благодаря его работе :) – snow

0
public function selectAll() { 
    $stmt = $this->dbh->prepare("SELECT hwid,username,pcname FROM users"); 
    $stmt->execute(); 
    return $stmt->fetchAll(); 
} 

это ALL код для проблемной функции вам нужно.

Ваш другой код также требует минимального понимания технологии, которую вы используете. По крайней мере, вы должны понимать, что вы получаете несколько строк из таблицы в виде массива, который обычно зацикливается с помощью команды foreach().

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