[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: передать массив или переменную методом GET
paa66
Есть форум класса. При регистрации родители указывают ФИО своего ребёнка и др. инфу (день рождения, адрес и т.д.) и эта инфа через params заносится в поле params таблицы users. Всё это было сделано до меня, я бы заносил ФИО учеников и др. данные в отдельные поля таблицы, но приходится выкручиваться из сложившейся ситуации. Встала задача вывести список учеников. Т.к. оба родителя внесли ФИО своего ребёнка, то при обычном запросе возвращаются ФИО одного ребёнка 2 раза. Я обошёл эту проблему так: создал ещё один (пустой) массив, потом перебираю каждый элемент (ФИО учеников) массива запроса к БД и сравниваю, есть ли этот элемент (ФИО) в новом массиве. Если нет, то в новый массив добавляю элемент, если есть - перехожу к следующему элементу. Таким образом данные из массива запроса к БД переносятся в новый массив в единственном экземляре. Потом идёт сортировка и вывод на экран. Вот код:
$arr = array (); // создаю пустой массив
$sql = "SELECT * FROM #__users "; // создаю переменную в виде запроса к БД
$db = &JFactory::getDBO();
$db->setQuery($sql); // делаю запрос к БД
$row = $db->loadAssocList(); // загружаю данные запроса в массив
foreach($row as $users) { // перебираю каждый элемент массива
$user =& JFactory::getUser($users[id]); // получаю ИД пользователя
$pupil = $user->getParam('pupil'); // получаю ФИО ученика
if (!in_array($pupil,$arr)): // проверяю, есть ли ФИО ученика в пустом ($arr) массиве

array_push($arr, $pupil); // если ФИО в массиве $arr нет, то добавляю в него

endif;


}
asort($arr); // после перебора всех элементов массива сортирую эти элементы
foreach($arr as $list) { // здесь я перебираю каждый элемент уже массива $arr
if (!$list == null){ // если элемент не пустой,
echo (" <br /> <a href=index.php?option=com_school&fio=$list>$list</a>"); // то вывожу значение элемента в виде гиперссылки
}}

В результате всё работает, список выводится на экран, ФИО учеников не повторяются. Теперь встала задача при щелчке по ссылке вывести ФИО родителей и все данные, которые они указали при регистрации. К сожалению, ссылка передаёт методом GET не Иванов Иван Иванович, а только Иванов. Скорее всего это связано с неправильной работой с массивом $arr или неправильной передачей методом GET. Как исправить ошибку и в чём она?



Спустя 17 минут, 4 секунды (1.03.2012 - 10:18) Visman написал(а):
echo (' <br /> <a href="index.php?option=com_school&fio='.htmlentities(urlencode($list)).'">'.htmlentities($list).'</a>');

Спустя 4 минуты, 13 секунд (1.03.2012 - 10:23) paa66 написал(а):
Профессор! :) Правда, при таком коде ФИО учеников выдаются в виде кракозябр, поэтому переправил на
echo (" <br /> <a href=index.php?option=com_school&fio=".htmlentities(urlencode($list)).">$list</a>
и всё встало на свои места. Спасибо!

Спустя 5 минут, 42 секунды (1.03.2012 - 10:28) Visman написал(а):
Цитата (paa66 @ 1.03.2012 - 15:23)
Правда, при таком коде ФИО учеников выдаются в виде кракозябр

Надо кодировку учитывать
http://www.php.su/functions/?htmlentities
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.