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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как передать массив в функцию?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Axiles
Отправлено: 06 Октября, 2010 - 06:35:19
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Подключабсь к базе данных, извлекаю данные в массив
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT bd.npp, bd.rs, bd.name, FROM bd")or die("Invalid query: " . mysql_error());
  2.  

вызываю функцию

сама функция
PHP:
скопировать код в буфер обмена
  1.  function prin2($sql)
  2.   {
  3.      
  4.      $x=0;
  5.      while ($x==0)
  6.       {
  7.        
  8.        $myrow = mysql_fetch_array($sql);
  9.        if (!$myrow)
  10.        {
  11.                
  12.         $x = 1;
  13.        }
  14.        else
  15.        {
  16.        
  17.         echo "<BR>";
  18.         echo "\"$myrow[0]\"";
  19.         echo "\"$myrow[1]\"";
  20.         echo "\"$myrow[2]\"";
  21.        
  22.         }
  23.       }
  24.   }
  25.  

цикл сразу переходит к завершению, не разбивает массив на строки, не выводит ошибок, такое ощущение что массив просто не передаётся в функцию

(Отредактировано автором: 06 Октября, 2010 - 06:40:07)

 
 Top
kafe
Отправлено: 06 Октября, 2010 - 06:47:09
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




А что вообще тебе надо с полученными данными из БД сделать?
 
 Top
Axiles
Отправлено: 06 Октября, 2010 - 07:26:01
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




эта функция в дальнейшем будет выводить данные в таблицу.
она работает в отдельном файле-скрипте, но я хочу её засунуть в основной скрипт как функцию, но не могу массив передать в функцию
(Добавление)
тоесть если так то работает
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT bd.npp, bd.rs, bd.name, FROM bd")or die("Invalid query: " . mysql_error());
  2.      $x=0;
  3.      while ($x==0)
  4.       {          
  5.        $myrow = mysql_fetch_array($sql);
  6.        if (!$myrow)
  7.        {                
  8.         $x = 1;
  9.        }
  10.        else
  11.        {        
  12.         echo "<BR>";
  13.         echo "\"$myrow[0]\"";
  14.         echo "\"$myrow[1]\"";
  15.         echo "\"$myrow[2]\"";      
  16.         }
  17.       }

а если так то не работает
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT bd.npp, bd.rs, bd.name, FROM bd")or die("Invalid query: " . mysql_error());
  2. prin2($sql);
  3. function prin2($sql)
  4.   {
  5.      $x=0;
  6.      while ($x==0)
  7.       {          
  8.        $myrow = mysql_fetch_array($sql);
  9.        if (!$myrow)
  10.        {                
  11.         $x = 1;
  12.        }
  13.        else
  14.        {        
  15.         echo "<BR>";
  16.         echo "\"$myrow[0]\"";
  17.         echo "\"$myrow[1]\"";
  18.         echo "\"$myrow[2]\"";      
  19.         }
  20.       }
  21.   }
  22.  

(Отредактировано автором: 06 Октября, 2010 - 07:30:31)

 
 Top
Uchkuma
Отправлено: 06 Октября, 2010 - 07:58:37
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Axiles пишет:
но не могу массив передать в функцию
Вообще-то вы передаете не массив, а указатель на результат запроса.
Из запроса уберите лишнюю запятую.
 
 Top
Axiles
Отправлено: 06 Октября, 2010 - 09:16:11
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




тоесть вот так?
PHP:
скопировать код в буфер обмена
  1. $sql = mysql_query("SELECT bd.npp, bd.rs, bd.name FROM bd")or die("Invalid query: " . mysql_error());

так тоже не работает
(Добавление)
сделал так
PHP:
скопировать код в буфер обмена
  1.  
  2.      echo "вызов функции>>>>>>>";echo $sql;echo "<BR>";
  3.      prin2($sql);
  4.     }
  5.  
  6.     function prin2($sql)
  7.   {
  8.      echo "перед циклом>>>>>>>";echo $sql;echo "<BR>";
  9.      $x=0;
  10.      while ($x==0)
  11.       {
  12.        echo "перед array>>>>>>>";echo $sql;echo "<BR>";
  13.        $myrow = mysql_fetch_array($sql);
  14.        echo "после array>>>>>>>";echo $sql;echo "<BR>";
  15.        if (!$myrow)
  16.        {
  17.         echo "конец цикла>>>>>>>";echo $sql;echo "<BR>";
  18.         $x = 1;
  19.        }
  20.        else
  21.        {
  22.         echo "цикл>>>>>>>";echo $sql;echo "<BR>";
  23.         echo "<BR>";
  24.         echo "\"$myrow[0]\"";
  25.         echo "\"$myrow[1]\"";
  26.         echo "\"$myrow[2]\"";
  27.  
  28.         }
  29.       }
  30.   }
  31.  

результат
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. вызов функции>>>>>>>Resource id #3
  3. перед циклом>>>>>>>Resource id #3
  4. перед array>>>>>>>Resource id #3
  5. после array>>>>>>>Resource id #3
  6. конец цикла>>>>>>>Resource id #3
 
 Top
Мелкий Супермодератор
Отправлено: 06 Октября, 2010 - 10:26:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Нет, так она именно работает.
Почитайте, что возвращает mysql_query - возвращает она ресурс. Что с этим делать дальше - посмотрите в конце описания сноску "см. также".


-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 06 Октября, 2010 - 13:02:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Axiles Различые определенные в языке PHP типа переменных используют различное поведение относительно передчи их значения по ссылке или осуществления копирования - в частности для сложных информационных типов таких как объекты и ресурсы используется безусловная передача по ссылке - и в случае если вам необходимо провести именно копирования объекта с его переинициализацией полями источника применяется функция clone


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Evrik
Отправлено: 26 Сентября, 2013 - 08:43:27
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Помогите, есть возможность передать приведенный ниже массив, как аргумент в функцию?
PHP:
скопировать код в буфер обмена
  1. $element = array("pr"=>"Параграф","prTwo"=>"Параграф второй","hd"=>"Заголовок","lis"=>"Список","tab"=>"Таблица","divs"=>"Блок","rf"=>"ссылка","bt"=>"кнопка");
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB