[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка по цене
Дэмегус
Здравствуйте уважаемые, у меня есть к вам вопрос, но я не думаю что он будет маленьким. Вопрос в сортировке:
Сам запрос выглядит так
 SELECT * FROM  `houses` ORDER BY  `houses`.`price2`

Помогите сделать его в вывод в формате .php
Чтобы при нажатии на цену вся страница перезагружалась и сортировка шла именно по цене......Если нужна будет доп информация, говорите все предоставлю.



Спустя 40 минут, 33 секунды (27.03.2012 - 11:26) m4a1fox написал(а):
Цитата
SELECT * FROM  `houses` ORDER BY  `houses`.`price2` DESC

Спустя 20 минут, 2 секунды (27.03.2012 - 11:46) Дэмегус написал(а):
да простите не дописал. Но мне нужен сам результат при нажатии, а не при открытии страницы. То есть страница открылась пользователь захотел упорядочить по цене нажал на кнопку "цена" и бац от сортировалось с наименьшего к большему или на оборот.

Спустя 43 минуты, 39 секунд (27.03.2012 - 12:29) l@pteff написал(а):
Дэмегус
Покажи код формы

Спустя 4 минуты, 12 секунд (27.03.2012 - 12:34) Дэмегус написал(а):
Извините пожалуйста еще раз. У меня и формы нет, так как я даже не понимаю как это реализовать но сейчас нашел на вашем сайте тему, надеюсь она мне поможет http://phpforum.ru/index.php?showtopic=54010&hl=
Я обязательно отпишусь в этой теме по выполнению или не выполнению сортировке (по цене, id или другим переменным)

Спустя 1 час, 1 минута, 38 секунд (27.03.2012 - 13:35) Дэмегус написал(а):
У меня ничего не получается, мозги не хотят думать.
Вот примерный мой код в виде которого я хочу реализовать желаемое, но оно мне ничего не дает:
<table border="0" cellpadding="0" cellspacing="0" align="left" style="padding: 0px 0px 0px 30px;">
<
tr>
<
td>
<
table width="100%" border="0" cellpadding="0" cellspacing="0">
<
tr>
<
td width="100%" valign="top" align="left">
<
table id="tdfon" border="0" cellpadding="0" cellspacing="0">

<
tr style="border-bottom: 1px solid #cacdd5;">
<
td width="32"><div align="center"></div></td>
<
td><div align="center"></div></td>
<
td><div align="center"><font style="color:#b6b9c1">МАРКА, МОДЕЛЬ<br/>МЕСТО НАХОЖДЕНИЯ</font></div></td>
<
td><div align="center"><font style="color:#b6b9c1">ГОД</font></div></td>
<
td><div align="center"><font style="color:#b6b9c1">ДВИГАТЕЛЬ</font></div></td>
<?php
$order = mysql_qw('
SELECT * FROM houses ORDER BY price2 DESC
'
) or die(mysql_error());
?>
<td><div align="center"><font style="color:#b6b9c1"><a href="?<?=$order?>">ЦЕНА</a></font></div></td>
<
td><div align="center"><font style="color:#b6b9c1"></font></div></td>
<
td><div align="left"><font style="color:#b6b9c1">Доп. информация</font></div></td>
</
tr>
<?php for($i=0;$i<$numberOfHouses;$i+=2){ ?>
<tr style="border-bottom: 1px solid #cacdd5;" onMouseOver="this.style.backgroundColor='#EEE' "
onMouseOut="this.style.backgroundColor='#ffffff' ">
<
td><? if($data[$i]['bron']==1){?><img src="imagefiles/bron.jpg" height="85" border="0" /><? }?><? if($data[$i]['collection']==1){?><img src="imagefiles/skidka.png" height="85" border="0" /><? }?><div align="center"></div></td>
<
td><div align="center">
<
table border="0">
<
tr>
<
td><?
$tmp0 = array();
$tmp0 = split("/",$photos[$i]['url']);
?>
<a href="index.php?house=<?php echo $data[$i]['id']?>" target="_blank"><img class="zoomi" src="acm/auto_img.php?pic=<?=$tmp0[0]?><?=$tmp0[2]?>&size=100" alt="acm/auto_img.php?pic=<?=$tmp0[0]?><?=$tmp0[2]?>&size=240" border="0" /></a></td>
</
tr>
</
table>


<?php
$order = mysql_qw('
SELECT * FROM houses ORDER BY price2 DESC
'
) or die(mysql_error());
?>

и
<?=$order?>

Народ прошу дайте указателем пальца по клаве, вдолбите недоучу волшебству.

Спустя 19 часов, 24 минуты, 39 секунд (28.03.2012 - 09:00) Дэмегус написал(а):
Народ, никто не может мне помочь?

Спустя 10 минут, 34 секунды (28.03.2012 - 09:11) nugle написал(а):
mysql_qw, что выполняет данная функция?

Спустя 3 минуты, 47 секунд (28.03.2012 - 09:14) Дэмегус написал(а):
Цитата (nugle @ 28.03.2012 - 06:11)
mysql_qw

Выполняет заданное условие для $order

Спустя 1 минута, 37 секунд (28.03.2012 - 09:16) nugle написал(а):
Дэмегус
вы где эту функцию взяли? вы можете мне написать ее целиком?

Спустя 16 минут, 24 секунды (28.03.2012 - 09:32) Дэмегус написал(а):
<?php
$order = "SELECT * FROM houses ORDER BY price2 DESC";
mysql_query($order);
?>

Вчера чуточку исправил на это и получается при нажатии ничего не происходит
index.php?SELECT%20*%20FROM%20houses%20ORDER%20BY%20price2%20DESC

Я пытаюсь понять логику.....как это должно выглядеть, мне бы пример какой-нибудь, чтобы я мог разбираться, но примеров вообще не могу найти...

Спустя 12 минут, 14 секунд (28.03.2012 - 09:45) nugle написал(а):
вот на этот сайт посмотри к примеру
http://fiesta-2000.com/category/journals/j...po_ohrane_truda
нажми на сортировать по цене и как он сортирует, подумай

Спустя 1 час, 13 минут, 15 секунд (28.03.2012 - 10:58) Дэмегус написал(а):
именно так я и хочу, вот было бы очень желательно если бы вы показали мне код, за ранее спасибо.

Спустя 6 минут, 34 секунды (28.03.2012 - 11:04) nugle написал(а):
Дэмегус
ну свой код я не покажу, а принцип вот:
1) передаешь гет параметр
2) принимаешь и подставляешь в запрос

У меня реализовано так, что я еще в сессию заталкиваю, чтобы постоянно гет за собой не таскать

Спустя 5 минут, 25 секунд (28.03.2012 - 11:10) Дэмегус написал(а):
Я напишу сюда,покажу, спасибо большое, надеюсь ты мне сможешь и дальше помочь. Извиняюсь за ранее за мой нубизм.

Спустя 4 дня, 2 часа, 26 минут, 40 секунд (2.04.2012 - 13:36) Дэмегус написал(а):
Народ, я не великий phpшник, ну дайте кто нибудь пожалуйста пример сортировки по цене по любой категории, пожалуйста.

Спустя 44 минуты, 26 секунд (2.04.2012 - 14:21) Дэмегус написал(а):
up

Спустя 2 часа, 46 минут, 52 секунды (2.04.2012 - 17:08) Alexey33 написал(а):
Дэмегус
Как то так.Под себя подгонишь вообщем.
echo "<a href=\"index.php?sort=name\"/>По имени</a><br>"; 
echo "<a href=\"index.php?sort=price\"/>По цене</a>";
$connect = mysql_connect("localhost","root","mysql");
mysql_select_db("alexey");
$sort = isset($_GET['sort']) ? $sort = $_GET['sort'] : $sort = "name";
$query = "SELECT * FROM houses ORDER BY $sort";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
for($i = 0;$i < $rows;$i++)
{
$row = mysql_fetch_row($result);
echo $row[0] . "<br>";
echo $row[1] . "<br>";
echo $row[2] . "<br>";
echo $row[3] . "<br>";
}

Спустя 6 минут, 41 секунда (2.04.2012 - 17:14) inpost написал(а):
Через суперглобальный $_GET передавай идентификатор.
$sort = '';
if($_GET['sort'] == 'cost')
$sort = "ORDER BY `cost` DESC";

q("
SELECT *
FROM `table`
"
.$sort."
"
);

Спустя 1 минута, 15 секунд (2.04.2012 - 17:16) inpost написал(а):
Alexey33
Твой пример плох, что через адресную строку можно передать левые параметры, чем вызовешь либо ошибку, либо уязвимость.

Спустя 7 минут, 20 секунд (2.04.2012 - 17:23) Alexey33 написал(а):
inpost
Ну я думаю если фильтровать то все будет гуд.В конце концов он хотел пример,я его кинул

Спустя 2 минуты, 23 секунды (2.04.2012 - 17:25) inpost написал(а):
$sort = isset($_GET['sort']) ? $sort = $_GET['sort'] : $sort = "name";
Неправильно ты понимаешь эту строчку. Достаточно так:
$sort = (isset($_GET['sort']) ? $_GET['sort'] : "name");

Спустя 1 минута, 46 секунд (2.04.2012 - 17:27) Alexey33 написал(а):
inpost
Благодарю.Теперь буду знать smile.gif

Спустя 9 минут, 19 секунд (2.04.2012 - 17:36) inpost написал(а):
Alexey33
Скобки я указал не случайно, их указывать надо. Вот результат тернарного оператора поставится вместо скобок. На выходе ты получишь строчку:
$sort = "name";
То есть результат тернарного оператора.

Спустя 2 часа, 16 минут, 5 секунд (2.04.2012 - 19:53) killer8080 написал(а):
Цитата (inpost @ 2.04.2012 - 17:36)
Скобки я указал не случайно, их указывать надо.

Совсем не обязательно, здесь от них пользы никакой нет user posted image
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'name';

Спустя 56 минут, 32 секунды (2.04.2012 - 20:49) inpost написал(а):
killer8080
В данном примере - нет, согласен. Но есть случаи, когда они обязательны, поэтому лучше приучить себя всегда писать со скобками, чем потом лишний раз бегать и искать проблемы в скриптах.

Спустя 3 минуты, 56 секунд (2.04.2012 - 20:53) killer8080 написал(а):
Цитата (inpost @ 2.04.2012 - 20:49)
поэтому лучше приучить себя всегда писать со скобками

Ну это ужу дело вкуса, я стараюсь не писать их там где они не нужны.
А нужны они в основном при конкатенации, например
$sort = 'text '.(isset($_GET['sort']) ? $_GET['sort'] : "name"). ' text2';

Спустя 7 минут, 23 секунды (2.04.2012 - 21:00) inpost написал(а):
killer8080
"А нужны они в основном при конкатенации"
Я тобой восхищаюсь smile.gif Знаешь, однако.

Спустя 10 часов, 34 минуты, 16 секунд (3.04.2012 - 07:35) twin написал(а):
Цитата (inpost @ 2.04.2012 - 17:49)
killer8080
В данном примере - нет, согласен. Но есть случаи, когда они обязательны, поэтому лучше приучить себя всегда писать со скобками, чем потом лишний раз бегать и искать проблемы в скриптах.

Недавно ты про пробелы тут говорил. Мол это плохо и вредно. И тут же ратуешь за загромождение кода скобками. Скобки как раз не просто делают код избыточным, это на самом деле не антураж, а оператор. Со всеми вытекающими последствиями. Расходом памяти и увеличением времени. Как же так?

Спустя 1 час, 17 минут, 13 секунд (3.04.2012 - 08:52) Дэмегус написал(а):
Вау)))) Ребята огромное вам всем спасибо, буду изучать сидеть, надо заниматься, спасибо за пример, если будут еще идеи или примеры, очень опять же был бы вам благодарен.

Спустя 3 часа, 40 минут, 14 секунд (3.04.2012 - 12:32) inpost написал(а):
twin
Когда я писал про проблемы, то там чисто теоретическая вещь была, что дольше, вот как и тут со скобками.
Если не ошибаюсь, то даже в той теме я сказал, что это не та вещь, что стоит из-за этого парить себе мозги. Та темка была теоретической, а эта - практика. В теории все умничают, а в практическом программировании - делаешь так, как удобнее. smile.gif
И да, я ставлю пробелы в многих ситуациях.
Быстрый ответ:

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