Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Дополнить массив mysql_fetch_array
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Дополнить массив mysql_fetch_array

Страниц (1): [1]
 

1. Евгений_82 - 09 Декабря, 2014 - 20:43:27 - перейти к сообщению
Привет всем. Ребята, прошу помощи, не понимаю почему не работает и что делать. В общем создаю динамический select, значения выводятся из БД. Через while всё это дело выводится. Всё бы хорошо, да в этом самом selecte надо создать ещё одно значение, которого нет в БД. Но если я создаю ещё один массив с новыми значениями, он перезатирает основной массив. Код выглядит примерно следующим образом:
PHP:
скопировать код в буфер обмена
  1.  
  2. function SelectDirr() {
  3.     $query_dirr= mysql_query("SELECT `id`, `title` FROM `pages` WHERE `parent_id`= '0'")or die ("Не могу выбрать дирректорию".mysql_error());
  4. return($query_dirr);
  5. }
  6.  

PHP:
скопировать код в буфер обмена
  1.  
  2. $query_dirr= SelectDirr();
  3.  
  4. while($q_d= mysql_fetch_array($query_dirr, MYSQL_ASSOC)) {
  5.    
  6. echo '<pre>';
  7. print_r($q_d);
  8. echo '</pre>';
  9. }
  10.  

Ну вот к примеру так, вместо print_r выводится сам select (option вернее). На странице это выглядит так:

Array
(
[id] => 1
[title] => Главная
)

Array
(
[id] => 2
[title] => Новости
)
Добавляю новый элемент ПЕРЕД while для его появления в select:
PHP:
скопировать код в буфер обмена
  1.  
  2. $query_dirr= array('id'=>"0", 'title'=>"Новая");
  3.  

И он просто перезатирает массив. Как добавить этот массив к уже существующему? Спасибо.
P.S Понимаю что id не может быть равен нулю Улыбка это для примера просто
2. Panoptik - 09 Декабря, 2014 - 20:54:12 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $query_dirr_results = SelectDirr();
  2. $select_dirr = array();
  3. $select_dirr[] = array('id'=>0, 'title' => 'New');
  4.  
  5. while($row = mysql_fetch_assoc($query_dirr_results)) {
  6.   $select_dirr[] = $row;
  7. }
  8.  
  9.  
  10. //
  11.  
  12.  
  13. foreach($select_dirr as $item) {
  14.   print_r($item);
  15. }
  16.  
3. Евгений_82 - 09 Декабря, 2014 - 21:02:57 - перейти к сообщению
Офигеть, я бы сам не допёр до этого...Теперь бы ещё вывести это всё в selecte, теперь код изменился и даже не могу сообразить как вывести теперь..
Всё, разобрался, Огромное спасибо! Всё работает! Мучился 3 дня с этой фигнёй...
4. DeepVarvar - 09 Декабря, 2014 - 21:14:37 - перейти к сообщению
Евгений_82 и забегая немного вперед, но всеравно полезно исправляться еще в начале: http://forum.php.su/topic.php?fo...33&topic=793

 

Powered by ExBB FM 1.0 RC1