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]   

> Описание: Помогите с кодом
and2009zxc
Отправлено: 26 Февраля, 2014 - 12:09:56
Post Id


Новичок


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


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




Добрый день!
У меня есть две страницы: search.php и results.php
На странице search.php есть форма поиска, выбор из базы данных и запись данных в массив
$names.
Нужно, чтобы результат запроса (т.е. этот массив) показывался на странице results.php
Пишу в search.php :
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. //весь код
  3. //далее привожу конец кода, где появляется массив $names
  4. $num=0;
  5. while ($pole= mysql_fetch_assoc($rez_search)){
  6.                  $names[$num]=$pole['name'];
  7.                 $num++;
  8. }
  9. Header( "Location:results.php" );
  10. ?>


В results.php пишу:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. require("search.php");
  3. for ($i=0; $i<count($names); $i++) echo $names[$i];
  4. ?>


НЕ ВИДИТ МАССИВА, ЧТО ДЕЛАТЬ??
P.S. 1) Про область видимости переменной знаю, просьба на php.net не отсылать, читал...
2) Код рабочий, результат на этой же странице выдавал, просто необходимо, чтобы результат выдавался на другой странице.
 
 Top
Мелкий Супермодератор
Отправлено: 26 Февраля, 2014 - 12:30:49
Post Id



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


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


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




and2009zxc пишет:
Header( "Location:results.php" );

На котором из бесконечного числа обращений?


-----
PostgreSQL DBA
 
 Top
and2009zxc
Отправлено: 26 Февраля, 2014 - 12:59:04
Post Id


Новичок


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


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




Мелкий пишет:
and2009zxc пишет:
Header( "Location:results.php" );

На котором из бесконечного числа обращений?

я не понял

разве Header("Location ... ") не должна перебрасывать на другую страницу?

(Отредактировано автором: 26 Февраля, 2014 - 13:01:02)

 
 Top
IllusionMH
Отправлено: 26 Февраля, 2014 - 13:08:51
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




and2009zxc, и на этой же странице
and2009zxc пишет:
require("search.php");

в котром
and2009zxc пишет:
Header( "Location:results.php" );
 
 Top
and2009zxc
Отправлено: 26 Февраля, 2014 - 13:26:39
Post Id


Новичок


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


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




IllusionMH пишет:
and2009zxc, и на этой же странице
and2009zxc пишет:
require("search.php");

в котром
and2009zxc пишет:
Header( "Location:results.php" );

Эти обрывки моего кода вкупе с вашими обрывками фраз не наталкивают меня ни на какие мысли....
Пожалуйста, объясните дураку подробнее, в чем здесь суть?? Не понял
 
 Top
esterio
Отправлено: 26 Февраля, 2014 - 14:50:17
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




в results.php есть inlude('search.php'); в котором идет перенаправление на results.php
 
 Top
and2009zxc
Отправлено: 26 Февраля, 2014 - 15:06:25
Post Id


Новичок


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


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




esterio пишет:
в results.php есть inlude('search.php'); в котором идет перенаправление на results.php

убрал require('search.php')
результат не изменился, не видит массив..
Notice: Undefined variable: names in C:\apache\localhost\www\results.php
 
 Top
IllusionMH
Отправлено: 26 Февраля, 2014 - 15:13:51
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




and2009zxc, и откуда должна переменная, объявляемая в файле который больше не инклюдится, должна появится в результатах?
Я бы убрал перенаправление. Зачем оно вообще там?
 
 Top
and2009zxc
Отправлено: 26 Февраля, 2014 - 15:33:15
Post Id


Новичок


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


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




IllusionMH пишет:
and2009zxc, и откуда должна переменная, объявляемая в файле который больше не инклюдится, должна появится в результатах?
Я бы убрал перенаправление. Зачем оно вообще там?

Как же мне тогда перенаправить на другую страницу?
 
 Top
Sail
Отправлено: 26 Февраля, 2014 - 15:35:09
Post Id



Участник


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


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




and2009zxc пишет:
не видит массив..

Это-ж веб!
С началом выполнения скрипта используемые данные надо как-нибудь инициализировать ($_GET, $_POST, запросы к БД, etc.)
Перенаправление (header) приводит именно к началу выполнения нового скрипта.
На момент входа в results.php после перенаправления сервер не знает о том, что данный пользователь уже что-либо делал.
Таким образом, надо либо добавить include results.php в search.php вместо перенаправления, либо где-нить (в БД, или сессии) сохранить результаты работы скрипта search.
Как-то так.
 
 Top
IllusionMH
Отправлено: 26 Февраля, 2014 - 15:39:39
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




and2009zxc, так проверяйте, нужно перенаправлять на результаты или вы уже на странице результатов.
 
 Top
and2009zxc
Отправлено: 26 Февраля, 2014 - 16:45:15
Post Id


Новичок


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


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




IllusionMH пишет:
and2009zxc, так проверяйте, нужно перенаправлять на результаты или вы уже на странице результатов.

Послушайте, я уже писал, что делается на странице search.php
Там есть форма поиска, с нее идут запросы к БД и на ней есть результат.
Фишка в том, что мне нужно опубликовать этот результат на другой странице, в виде красивой таблички, чтобы формы поиска на ней уже не было...
Все ж просто вроде должно быть..
Я понимаю, что без includa'а не виден мой массив, но если убрать Header , то я не знаю, чем перенаправить на другую страницу
Вариант с еще одним обращением к базе данных мне не нравится, зачем, если данные уже выбраны и находятся в массиве
Вариант с сессиями наверное подошел бы, но я не очень-то с ними знаком.
Можно ли как-нибудь сохранить значения массива в глобальных переменных, чтобы после завершения скрипта они были доступны вплоть до обнуления?
(Добавление)
Люди, всем спасибо большое за участие!
Я придумал как сделать наконец-то!
Просто на странице search.php оставил одну форму, с помощью action=results.php указал, где обрабатывается форма, а весь код по поиску и выводу разместил на results.php
Все просто, как я и думал..

(Отредактировано автором: 26 Февраля, 2014 - 17:37:25)

 
 Top
matt_xs
Отправлено: 26 Февраля, 2014 - 18:41:09
Post Id


Новичок


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


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

[+]


Используй сессии (сеансы)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB