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]   

> Описание: вывести данные и отсортировать результат
broshurkaplus
Отправлено: 07 Февраля, 2012 - 11:28:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




здравствуйте .
не получетается отсортировать.
суть такая выбираю из бд данные из двух колонок. некоторые поля могут быть пустыми.
нужно сложить данные в массив и отсортировать по алфавиту

пробывал так

PHP:
скопировать код в буфер обмена
  1.  
  2. $q=mysql_query("SELECT c1, c2 FROM tab");
  3. while($r=mysql_fetch_array($q)){
  4.     if($r["c1"]!==""){echo $r["c1"]."<br />";}
  5.     if($r["c2"]!==""){echo $r["c2"]."<br />";}
  6. }
  7.  

выводит то, но не получается отсортировать. те нужно получить один массив и отсортировать

если можно подскажите
 
 Top
EuGen Администратор
Отправлено: 07 Февраля, 2012 - 11:31:15
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT c1, c2 FROM tab WHERE c1 IS NOT NULL AND c2 IS NOT NULL AND c1!='' AND c2!='' ORDER BY c1,c2

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
broshurkaplus
Отправлено: 07 Февраля, 2012 - 11:52:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




что то я запутался уже - print $r; и не выводит?
 
 Top
EuGen Администратор
Отправлено: 07 Февраля, 2012 - 11:57:05
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Имелось ввиду то, что все перекладывается на SQL:
PHP:
скопировать код в буфер обмена
  1. $q=mysql_query("SELECT c1, c2 FROM tab WHERE c1 IS NOT NULL AND c2 IS NOT NULL AND c1!='' AND c2!='' ORDER BY c1,c2");
  2. while($r=mysql_fetch_array($q)){
  3.     echo($r['c1'], $r['c2']);
  4. }


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
broshurkaplus
Отправлено: 07 Февраля, 2012 - 12:12:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




я смысл понял, но
Parse error: syntax error, unexpected ',' в строке 3
 
 Top
illy
Отправлено: 07 Февраля, 2012 - 12:19:16
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




может в кавычках?
PHP:
скопировать код в буфер обмена
  1. $q=mysql_query("SELECT c1, c2 FROM tab WHERE c1 IS NOT NULL AND c2 IS NOT NULL AND c1!='' AND c2!='' ORDER BY c1,c2");
  2. while($r=mysql_fetch_array($q)){
  3.     echo ($r['c1'].','.$r['c2']);
  4. }

(Отредактировано автором: 07 Февраля, 2012 - 12:33:03)



-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
broshurkaplus
Отправлено: 07 Февраля, 2012 - 12:43:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




так скобки напечатало, убрал скобки все равно что то не то выбрало.

PHP:
скопировать код в буфер обмена
  1.     echo ''.$r['teg1'].'<br/>'.$r['teg2'].'<br/>';


вот колонки вкратце

гене гене
п п
вапвап вапвап
вап вап
апр
ап
ке ке
выа
апрпар апрпар




оно вот распечатало, отсортировало по первому , потом по второму

ааа
ббб
апрпар
парапр


и выбрало не все слова

как бы чтоб выбирало по обоим и сортировало по всем словам?
мне надо для меню я его в ли потом заверну
 
 Top
EuGen Администратор
Отправлено: 07 Февраля, 2012 - 12:54:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




broshurkaplus
Это было "наследие" от Ctrl+C с исходного кода.

А вообще - сформулируйте что Вам нужно. Непонятно до сих пор какая именно сортировка.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
broshurkaplus
Отправлено: 07 Февраля, 2012 - 14:26:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




имеем в таблице колонки
две из них заполнены не полностью, те есть в одной слово, по той же строке в другой нет, или наоборот, или обе заполнены, или обе пустые. юзеру предлагалось ввести слова для заполнения -но он может ввсести в одно поле одно слово, а может два слова в каждое поле. ими и заполняем таблицу.
при выводе контента при каждой записи есть теги - эти слова.
контент выводится напр. по 10 на страницу.
нужно чтобы при нажатии на ссылку-один из тегов выдало контент, только тот которому в таблице соответствуют слова , те есть слово в одной или второй колонке
вот так
+ формирую меню на основе этих двух колонок - нужно выбрать все слова из обоих (они могут повторяться) и отсортировать по алфавиту
как бы создать массыв на основе этих колонок без повторяющихся слов и его уже отсортировать по алфавиту
как то так

(Отредактировано автором: 07 Февраля, 2012 - 14:35:01)

 
 Top
broshurkaplus
Отправлено: 07 Февраля, 2012 - 16:36:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




накопал такое, только что то не правильно может понял, это вывело мне только два слова

PHP:
скопировать код в буфер обмена
  1. $q=mysql_query("SELECT teg1, teg2 FROM tab WHERE teg1!='' OR teg2!='' ORDER BY teg1,teg2");
  2. $str1 = $r["teg1"]; // Первый массив
  3. $str1 = strtolower($str1); // Приводим все символы к нижнему регистру
  4. $a1 = explode(" ",$str1); // Заносим слова в массив
  5. $str2 = $r["teg2"];
  6. $str2 = strtolower($str2);
  7. $a2 = explode(" ",$str2);
  8. $a = array_merge($a1, $a2);
  9. $a = array_unique($a);
  10. for($i = 0; $i < count($a); $i++)
  11. {
  12. echo $a[$i]."<br/>";
  13. }


что не так?
или может проще подправить базу, чтобы оно все слова через запятую в одну колонку вносило? а потом разбивать по запятой, но хотелось бы из такого плясать
 
 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