2015-05-16 2 views
0

Это единственная вещь, которую я пробую в первый раз. Я сделал несколько сайтов в PHP и MySQL как DB, но никогда не использовал функции для получения данных из базы данных.Отображение данных, возвращаемых функцией в PHP MySQL

Но вот что я сейчас пытаюсь сделать новым, так как сейчас я хочу достичь reusability для проекта болота. Я хотел получить информацию о заказе от БД (т. Е. MySQL) до PHP Function. Я немного смущен тем, как печатать значения, возвращаемые функцией PHP.

Функция пишет мной, как показано ниже:

function _orderdetails(){ 
    $sql = "Select * from orders WHERE 1"; 
    $result = DB::instance()->prepare($sql)->execute()->fetchAll(); 
    return $result; 
} 

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

Я попытался вызвать функцию непосредственно через print_r (_orderdetails());

Пожалуйста, дайте мне знать:

  1. Эффективный способ переборе этой функции для печати значений.
  2. Есть ли какой-либо другой подход, над которым лучше работать?
+2

«Эффективный способ переборе этой функции для печати значений.» - просто создайте базовый цикл: 'foreach ($ result as $ row) {строка вывода}' – user4035

+0

«Есть ли другой подход, над которым лучше работать?» - сколько раз вы называете эту функцию? – user4035

+0

Я знаю этот способ итерации @ user4035 .... Но я хочу, чтобы это с помощью функции ... Я понятия не имею, как много раз мне нужно называть это ..Скажите, пожалуйста, правильное решение – Gags

ответ

1

Вы не можете цепи fetchAll() для выполнения(), как это.

Кроме того, для запроса, который не принимает параметров, нет смысла использовать execute(). Таким образом изменить свою функцию как этот

function _orderdetails(){ 
    $sql = "Select * from orders WHERE 1"; 
    return DB::instance()->query($sql)->fetchAll(); 
} 

и таким образом вы будете иметь возможность перебирать результаты наиболее естественный способ

foreach (_orderdetails() as $order) { 
    echo $order['id'] . '<br />'; 
} 
-2

В вашем PHP код, который будет вызывать эту функцию с помощью следующей

print_r(_orderdetails()); 
//to get all the result set... I mean all the values coming from this function. 

Вы также можете использовать функцию и использование -> после вызова функции, а затем положить имя переменной следующим образом:

To iterate through the values of this function: 
$value_arr = _orderdetails(); 
foreach ($valur_arr as $value) { 
    echo $value . '<br />'; 
} 

Таким образом вы будете эхо 1 столбец из таблицы базы данных, которую вы используете.

+0

Могу ли я написать функцию differrnt, которая выполняет итерацию с помощью результатов и значений печати, тогда bt покажет мне реализацию – Gags

+0

и с решением ур .. m получение 'Примечание: попытка получить свойство не-объекта' – Gags

+0

Вы можете заменить $ order_details-> db_column_name_in_orders_table с $ order_details ['db_column_name_in_orders_table']; –

-2

Вы также можете использовать ->fetch();

Вместо ->fetchAll();

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

Вы можете проверить PDO дополнительные функции по адресу:

http://php.net/manual/en/book.pdo.php

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