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 :: switch для ссылки

 PHP.SU

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


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

> Без описания
Shuraarh
Отправлено: 18 Июня, 2013 - 09:06:58
Post Id


Новичок


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


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




Всем привет, необходимо отсортировать массив при нажатии по ссылке:

$query = mysql_query("select brand,what,image from telik where type='wide' order by $name");

$name=$_GET["sort"];

<a href="co22.php?sort=brand">Brand</a>

соответственно, после нажатия сортировка будет идти по столбцу brand.
Хочу еще добавить ссылку для сортировки по столбцу what.
Как правильно написать код с помощью switch:

swith(какую переменную указать?){
case 1:
$sort = 'brand';
break;
case 2:
$sort = 'what';
break;
default :
$sort = 'brand';
break;
}

И можно как-то указать при загрузке страницы, чтобы сортировка не происходила, т.е. что указать в значении order by?

(Отредактировано автором: 18 Июня, 2013 - 09:08:09)

 
 Top
Panoptik
Отправлено: 18 Июня, 2013 - 09:11:25
Post Id



Постоянный участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $order = ' ORDER BY ';
  3. switch($_GET['sort']) {
  4.  case brand:
  5.  case what:
  6.    $order .= $_GET['sort'];
  7.    break;
  8.  default:
  9.   $order = '';
  10. }
  11.  
  12. $sql = "select brand,what,image from telik where type='wide' ".$order;
  13. $query = mysql_query($sql);
  14.  

(Отредактировано автором: 18 Июня, 2013 - 09:16:54)



-----
Just do it
 
 Top
Denkill
Отправлено: 18 Июня, 2013 - 09:13:42
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. if(!$_GET['sort'])$sort="ORDER BY ".$_GET["sort"]." DESC";
  3. $query = mysql_query("select * from `telik` where `type`='wide' ".$sort);
  4. echo '<a href="co22.php?sort=brand">Brand</a>';
  5.  


-----
Хо-Хо-Хо
 
 Top
Shuraarh
Отправлено: 18 Июня, 2013 - 09:22:51
Post Id


Новичок


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


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




Все хорошо, но я бы хотел, чтобы в co22.php?sort=brand указывалось не brand, а 1 и, соответственно co22.php?sort=2 если сортировка по столбцу what
 
 Top
Denkill
Отправлено: 18 Июня, 2013 - 09:26:49
Post Id



Посетитель


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


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




switch выбираешь
PHP:
скопировать код в буфер обмена
  1.  
  2. switch($sort){
  3.  case 1:
  4.    $s = 'brand';
  5.  break;
  6.  case 2:
  7.   $s = 'image';
  8.  break;
  9.  //и т.д.
  10. }
  11.  

(Отредактировано автором: 18 Июня, 2013 - 09:27:26)



-----
Хо-Хо-Хо
 
 Top
Shuraarh
Отправлено: 18 Июня, 2013 - 09:42:36
Post Id


Новичок


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


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




Не знаю в чем причина, сортирует только по brand
 
 Top
Denkill
Отправлено: 18 Июня, 2013 - 09:48:05
Post Id



Посетитель


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


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




Ты всех запутал. В первом посте ты в $_GET['sort'] передаешь строковое значение brand

В следующем
Цитата:
Все хорошо, но я бы хотел, чтобы в co22.php?sort=brand указывалось не brand, а 1 и, соответственно co22.php?sort=2 если сортировка по столбцу what


Тебе в ссылке надо передавать численное значение

co22.php?sort=2

Или как тебе вообще надо?


-----
Хо-Хо-Хо
 
 Top
Shuraarh
Отправлено: 18 Июня, 2013 - 09:53:32
Post Id


Новичок


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


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




В ссылке мне надо чтобы передовались значения в цифрах, соответственно если сортировка по brand, то ?sort=1 если по what ?sort=2

Размещаю ссылку для сортировки по brand

<a href="co22.php?sortby=1">Brand</a>

Размещаю ссылку для сортировки по what

<a href="co22.php?sortby=2">What</a>
 
 Top
LIME
Отправлено: 18 Июня, 2013 - 09:57:05
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. $sortArr=array(1=>'brand', 'what');
  2. $sort=(isset($_GET['sort']))?' SORT BY ' . $sortArr[$_GET['sort']]:'';
  3. $query='SELECT * FROM tbl'.$sort;

(Отредактировано автором: 18 Июня, 2013 - 09:57:49)

 
 Top
Shuraarh
Отправлено: 18 Июня, 2013 - 10:05:35
Post Id


Новичок


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


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




вообще не работает
 
 Top
LIME
Отправлено: 18 Июня, 2013 - 10:07:47
Post Id


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


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


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




Shuraarh пишет:
вообще не работает

соболезную
это все чем я могу помочь при таком количестве инфы
 
 Top
Denkill
Отправлено: 18 Июня, 2013 - 10:08:02
Post Id



Посетитель


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


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




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


Если здесь есть гадалки отзовитесь. А?!


-----
Хо-Хо-Хо
 
 Top
Shuraarh
Отправлено: 18 Июня, 2013 - 10:17:47
Post Id


Новичок


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3.  <a href="co22.php?sort=brand">Brand</a>
  4.  <a href="co22.php?sort=what">What</a>
  5.  
  6.  
  7. <?php
  8. $name=$_GET["sort"];
  9. $db = mysql_connect("localhost","name","password");
  10. mysql_select_db("product",$db);
  11.  
  12. $query = mysql_query("select brand,what,image from telik where type='wide' order by $name");
  13. echo '<table class="tb"><tr>';
  14. $i = 0;
  15. while($row = mysql_fetch_array($query))
  16. {
  17. $i++;
  18.           echo '<td valign="top" width="380px"><img src="', $row['image'],'" style="float:left;
  19. padding-right:3px;">', $row['brand'],'<br>', $row['what'],' </div><p class="t">',$row['opisanie'],'</p></td>';
  20.  
  21.         if($i == 2) {
  22.          echo '</tr><tr>';
  23.            $i = 0;
  24.         }
  25.  
  26.            }
  27.  
  28. echo '</tr></table>';
  29. ?>
  30.  



Соответственно, через switch организовать чтобы 1=brand 2=what, и уже в ссылку прописывать
<a href="co22.php?sort=1">Brand</a>
<a href="co22.php?sort=2">What</a>

(Отредактировано автором: 18 Июня, 2013 - 10:18:06)

 
 Top
Denkill
Отправлено: 18 Июня, 2013 - 10:24:23
Post Id



Посетитель


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


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




У тебя запрос незакончен
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT brand,what,image FROM telik WHERE type='wide' ORDER BY $name DESC


-----
Хо-Хо-Хо
 
 Top
Shuraarh
Отправлено: 18 Июня, 2013 - 10:31:06
Post Id


Новичок


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


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




Прошу прощения, но в чем ошибка отсутсвия DESC?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB