[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос с сортировкой по алфавиту, но чтобы первым
SergeyEremeev
Запрос с сортировкой по алфавиту, но чтобы первым выбирались данные которые начинаются на букву «Л»

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

$result_tovar = mysql_query ("
SELECT
shop_items.id,
shop_items.name,
shop_items.item_id,
shop_itemimages.filename,
shop_prices.value
FROM shop_items
LEFT JOIN shop_prices ON shop_prices.item_id=shop_items.item_id
LEFT JOIN shop_itemimages ON shop_itemimages.item_id=shop_items.item_id
WHERE shop_items.parent_group_id='
$group_id'

AND owner_id='0'


limit 0, 10
"
);
$myrow_tovar = mysql_fetch_assoc($result_tovar);



Необходимо выбрать данные так чтобы чтобы изначально вытаскивались те которые начинаются на букву «Л» а потом все остальные.
Помогите пожалуйста если кто в курсе как это реализовать)
sergeiss
Нужно сделать правильное условие в ORDER BY, например так:
ORDER BY shop_items.name LIKE 'Л%' ASC, shop_items.name ASC


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Placido
Только не ASC, а DESC:
... ORDER BY `shop_items`.`name` LIKE 'Л%' DESC, `shop_items`.`name`
sergeiss
Цитата (Placido @ 8.10.2013 - 15:20)
Только не ASC, а DESC:

Цитата (Placido @ 8.10.2013 - 15:20)
....например так:


Это уж ТС пусть сам решает, что ему нужно smile.gif Можно и так, и эдак, в зависимости от потребностей. Главное, чтобы он идею понял.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Placido
Цитата (sergeiss @ 8.10.2013 - 15:37)
Это уж ТС пусть сам решает, что ему нужно smile.gif Можно и так, и эдак, в зависимости от потребностей. Главное, чтобы он идею понял.

Не спорю насчет идеи, но что ему нужно, ТС уже решил:
Цитата
чтобы изначально вытаскивались те которые начинаются на букву «Л» а потом все остальные

А для этого нужно использовать LIKE 'Л%' DESC.
SergeyEremeev
Помогло вот это
ORDER BY IF (shop_items.name >= 'Л', 0, 1)

НО!

Помогло но не совсем.
На страничке view_cat.php есть запрос куда я добавил вашу строку и туда первые 10 товаров действительно начинаются на "Л" но следующие 10 товаров подгружаются через второй запрос который обрабатывается через JS он визуально такой же как на view_cat.php но его обрабатывает JS.
Я туда тоже вставляю ваше условие а он не реагирует вообще.
Я думаю может из за руского символа "Л" ??? может такое быть?


$(document).ready(function(){

if($('body.cat').length>0){

var oH,sT,wH,ab=true,params,model,str,rand;

rand=5;

wH=$(window).height();
$(window).everyTime(250,'gtimer',function(){
sT=$(window).scrollTop()+wH;
oH=$('#wrapper_carkas').innerHeight();
if(sT>=oH){
from+=parseInt(col);
params='from='+from+'&col='+col+ '&gID='+group_id;
$.ajax({
url: '/ajax/load_goods.php', // указываем URL и
type: 'POST',
data:params,
dataType : "json", // тип загружаемых данных
success: function (data) { // вешаем свой обработчик на функцию success
if(data==0) $(window).stopTime('gtimer');
$.each(data, function(i, val) { // обрабатываем полученные данные
str=val['title'];

//str=str.toString();
model='<div class="model"><a href="view_model.php?item_id='+val['item_id']+'">
<img class="hover_img" width="200" height="300"
src="http://corona-jeans.ru/1c/catalog/'
+val['filename']+'?'+rand+'" alt="" title=""/></a><div class="ar"><p>'+str+'</p><p>Наличие:
<span class="est_v_nali">ЕСТЬ В НАЛИЧИИ</span></p><p>Опт. цена: '
+(r==1?'<a class="popup" rel="popuprel" href="#">показать</a>':
'<span class="price_vc">'+val['price']+'</span>')+'</p></div></div>';
$('#vitrina').append(model);
});
}
}
);
}
}
);
}

var that,t=true;
$('#menu_left ul li ul li.active').parent().show();
$('#menu_left ul li ul li.active').parent().parent().addClass('active');
$('#menu_left ul li ul li.active').parent().parent().find('span b').text('-');
$('#menu_left ul>li span').click(function(){
if(t){
that=$(this).parent();
t=false;
if(!that.hasClass('active')){
$(this).find('b').text('-');
that.find('ul').slideDown(function(){
that.addClass('active');
t=true;
});
} else {
$(this).find('b').text('+');
that.find('ul').slideUp(function(){
that.removeClass('active');
t=true;
});
}
}
}
);
});

function getRandom(min, max) {
return Math.random() * (max - min) + min;
}


а вот исходный файла /ajax/load_goods.php':


<?
if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])&&($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')){
include("../block/bd.php");

function getMinPriceById($id)
{
$t=mysql_query("
SELECT
MIN(shop_prices.value) as value,
shop_itemimages.filename
FROM
shop_prices
INNER JOIN shop_items ON shop_items.item_id=shop_prices.item_id
LEFT JOIN shop_itemimages ON shop_itemimages.item_id=shop_prices.item_id
WHERE
shop_items.owner_id='
$id'

"
);
if(mysql_num_rows($t))
{
$result=mysql_fetch_array($t);
return $result;
}
else return false;
}



$from=trim($_POST['from']);
$col=$_POST['col'];
$group_id=$_POST['gID'];
$sql=mysql_query("
SELECT
shop_items.id,
shop_items.name as title,
shop_items.item_id,
shop_itemimages.filename,
shop_prices.value as price
FROM shop_items
LEFT JOIN shop_prices ON shop_prices.item_id=shop_items.item_id
LEFT JOIN shop_itemimages ON shop_itemimages.item_id=shop_items.item_id
WHERE shop_items.parent_group_id='
$group_id'
AND owner_id='0'
ORDER BY IF (shop_items.name >= 'л', 0, 1)
LIMIT "
.$from.", ".$col."
"
);
if(mysql_num_rows($sql)>0){
while($tmp=mysql_fetch_assoc($sql)){

if ($tmp["filename"] =="")
{
$tmp["filename"]='netfoto.jpg';
}

if((trim($tmp["price"])=='')||($tmp["filename"]=='')) {
$arr=getMinPriceById($tmp["item_id"]);
$tmp["price"]=$arr['value'];
$tmp["filename"]=$arr['filename'];
}
//$tmp["title"]=iconv('WINDOWS-1251','UTF-8',$tmp["title"]);
$result[]=$tmp;
}
echo json_encode($result);
} else echo 0;
}
?>
Быстрый ответ:

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