2015-09-04 3 views
0

Привет,Массив для преобразования строки в Еогеасп

Я получаю массив для преобразования строки при использовании кода ниже:

$sort_order = array(); 
foreach (getAll() as $field) { 
     $sort_order[$field->name] = query("SELECT sort_order 
       FROM field_table 
       WHERE field_name = '$field->name'");     
     $o->tag[$field->name] = $field->title. $sort_order[$field->name]; 
      } 

ошибка говорит, что есть массив для преобразования строки в строке 6. Почему это?

спасибо.

ответ

0

query возвращает массив, так что вам нужно сделать что-то вроде:

$result = query("SELECT sort_order 
      FROM field_table 
      WHERE field_name = '$field->name'"); 
$row = $result->fetch_assoc(); 
sort_order[$field->name] = $row['sort_order']; 
+0

Я попробовал ваше предложение, но теперь я получаю вызов функции члена fetch_object() на не-объект –

0

Да потому, что запрос возвращает массив, который непосредственно присваивается переменной. Пожалуйста, попробуйте следующее:

$sort_order = array(); 
    foreach (getAll() as $field) { 
    $result = query("SELECT sort_order 
     FROM field_table 
     WHERE field_name = '$field->name'"); 

    while($res = $result->fetch_array()) { 
     $sort_order = $res['sort_order']; 
    } 

    $o->tag[$field->name] = $field->title.$sort_order; 
    } 
+0

Я попытался, но получил эту ошибку: Вызов функции члена FETCH_ASSOC() на non-object –

+0

извините, такая же ошибка: вызов функции-члена fetch_array() для не-объекта –

+0

Правильно ли подключено ваше соединение с базой данных? $ connect = new mysqli ($ dbhost, $ dbuser, $ dbpass, $ dbname); $ result = $ connect-> query ("SELECT sort_order FROM field_table WHERE field_name = '$ field-> name'"); Эта ошибка может возникнуть, если база данных неправильно подключена. –

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