Нужно что бы в сылку передавался не /?cat_id=6 а /super.ht
Помогите разобраться с кодом, хотя бы какая часть кода отвечает за передачу ссылки в url
код прикреплен в атаче...
Заранее спасибо))
<?php
if(!defined('sCMSprotection2')){die("No Way for hackers!");}
$path = pathinfo(__FILE__);
$TEMPLATE->set_folder($path['dirname'].'/tpl/', true);
$psevd = strtolower($SYSTEM_REQUEST['psevd']);
}
$cat_psevd = $SQLdb->SQL_Query("SELECT id,psevd FROM {$PREFIX}_categories WHERE active = 1");
while($row = mysql_fetch_assoc($cat_psevd)){
$cat_psevd_arr[] .= $row['psevd'].'5555';//Псевдонимы категорий
}
if(count($catFltr) == 1 && $catFltr[0]){
$query = "SELECT seo_text FROM scms_categories where id in (".implode(',', $catFltr).") and seo_text != ''";
$SEoCatRes = $SQLdb->SQL_Query($query);
if($SQLdb->get_num_rows($SEoCatRes)){
$seoCat = mysql_fetch_assoc($SEoCatRes);
$SeoCatTextTemp = htmlspecialchars_decode($seoCat['seo_text']);
$SEOCatText = <<<STR
<div id="knowledge_text" class="seoText">
<p style="text-align:justify">{$SeoCatTextTemp}</p>
</div>
STR;
}
# get all priznak
$query = <<<SQL
select t2.id,t2.title
from `priznakLink` as t1
left join `priznak` as t2 on (t2.id = t1.`priznakId`)
where t1.`ownerId` = '{$SQLdb->SQLSafeStr($catFltr[0])}'
SQL;
$result = $SQLdb->SQL_Query($query);
if($SQLdb->get_num_rows($result)){
$prArrT = array();
while ($prItms = mysql_fetch_assoc($result)) {
//$SignArray
$YUFltrSign = $FltrU = array();
foreach ($SignFltr as $key => $value) {
$YUFltrSign[] = "'{$SignArray[$value]['type']}'";
}
$FltrU[] = " I.sign in (".implode(',', $YUFltrSign).")";
if($FltrU) {
$WHERE .= ' AND ('.implode(' OR ', $FltrU).')';
}
}
$FltrU = array();
if($_GET['acc_id'] == 1){
$WHERE .= " AND I.old_price > 0 AND term = 'discount'";
}
//Если небыло фильтров(общий запрос)------------------------------------------------------------------------
$sql = "SELECT I.id, I.title,I.short_text,I.quantity,I.liks, I.psevd, I.on_board, I.price,I.old_price,I.type, I.term, P.picture_file
FROM {$PREFIX}_item I
LEFT JOIN {$PREFIX}_pictures P ON (P.chapter = 'item' AND P.m = 1 AND P.item_id = I.id)
{$WHERE} {$SORT}";
// echo '$brandFltr';print_r($sql);exit();
//------------------------------ ------FILTER FUNCTIONS----------------------------------------------------
function CAT_QUERY($cat_arr){//ADD CATEGORY IN QUERY--------------------------- --
$WHERE .= "I.price BETWEEN $from AND $to AND I.active = 1)";
if(!empty($catFltr[0])){ //ADD CATEGORY`s IN QUERY/////////////////////////// /////////////////////
/*
if(count($catFltr == 1)){
$cat_id = $catFltr[0];
$CATEGORY = " AND C.id = '{$cat_id}'";
$sql = $SQLdb->SQL_Query("SELECT id,title FROM {$PREFIX}_categories WHERE id = '{$cat_id}'");
$row = mysql_fetch_assoc($sql);
$H1 = $row['title'];
$CAT_ID = $row['id'];
}else{ */
$CATEGORY = CAT_QUERY($catFltr);
//}
}else{$CATEGORY = '';}
if(!empty($brandFltr[0])){//ADD BRAND`s IN QUERY/////////////////////////// //////////////////////
/*
if(count($brandFltr) == 1){
$brand_id = $brandFltr[0];
$BRAND = " AND B.id = '{$brand_id}'";
$sql = $SQLdb->SQL_Query("SELECT id,title FROM {$PREFIX}_brands WHERE id = '{$brand_id}'");
$row = mysql_fetch_assoc($sql);
$H1 = $row['title'];
$BRAND_ID = $row['id'];
}else{ */
$BRAND = BRAND_QUERY($brandFltr);
//}
}else{$BRAND = '';}
if(!empty($signFltr[0])){//ADD SIGN`s IN QUERY/////////////////////////// ////////////////////////////////
$SIGN = SIGN_QUERY($signFltr);
}else{$SIGN = '';}
if($_GET['acc_id'] == 1){
$DISCOUNT = " AND I.old_price > 0 AND term = 'discount'";
}
if($psevd){
if(in_array($psevd,$brand_psevd_arr)){
$WHERE .= " AND B.psevd = '{$psevd}'";
$sql = $SQLdb->SQL_Query("SELECT id,title FROM {$PREFIX}_brands WHERE psevd = '{$psevd}'");
$row = mysql_fetch_assoc($sql);
$H1 = $row['title'];
$BRAND_ID = $row['id'];
}elseif(in_array($psevd,$cat_psevd_arr)){
$WHERE .= " AND C.psevd = '{$psevd}'";
$sql = $SQLdb->SQL_Query("SELECT id,title FROM {$PREFIX}_categories WHERE psevd = '{$psevd}'");
$row = mysql_fetch_assoc($sql);
$H1 = $row['title'];
$CAT_ID = $row['id'];
}elseif($psevd == 'discount'){
$WHERE .= " AND I.old_price > 0 AND I.term = 'discount'";
$H1 = 'Акционные';
$CHECK = true;
}else{
$H1 = 'Каталог товаров';
}
}
$sql = "SELECT I.id, I.title, I.short_text, I.quantity, I.psevd, I.liks, I.price, I.old_price, I.on_board, I.type, I.term, P.picture_file
FROM {$PREFIX}_item I
LEFT JOIN {$PREFIX}_pictures P ON (P.chapter = 'item' AND P.m = 1 AND I.id = P.item_id)
LEFT JOIN {$PREFIX}_brands B ON (B.id = I.brand_id AND B.lang_id = 'ru')
LEFT JOIN {$PREFIX}_categories C ON (C.id = I.cat_id AND C.lang_id = 'ru')
{$WHERE}
{$TERM}
{$CATEGORY}
{$BRAND}
{$SIGN}
{$DISCOUNT}
{$SORT}";
/******************************CATEGORY****************************************************/
$CATEGORY = '<ul class="left_column_menu catalog categories">';
$category = $SQLdb->SQL_Query("SELECT id,title,psevd FROM {$PREFIX}_categories WHERE active = '1' ORDER BY title");
$k = 0;
SELECT B.id,B.title,B.psevd,P.picture_file FROM{$PREFIX}_brands B,{$PREFIX}_pictures P WHERE P.item_id = B.id AND P.m = 1 AND P.chapter ='brands'ORDERBY B.title DESC
Спасибо тебе огромное)) сработало...Мой рейтинг не позволяет тебе клацнуть "спасибо" но все равно))
$brands = $SQLdb->SQL_Query("SELECT B.id,ORDER BY B.title DESC,B.psevd,P.picture_file FROM {$PREFIX}_brands B,{$PREFIX}_pictures P WHERE P.item_id = B.id AND P.m = 1 AND P.chapter = 'brands'");
Если так нужно было сделать то не работает...вы дает ошибку..
Внимание! Возникла ошибка SQL запроса:
SELECT B.id,ORDER BY B.title DESC,B.psevd,P.picture_file FROM scms_brands B,scms_pictures P WHERE P.item_id = B.id AND P.m = 1 AND P.chapter = 'brands'
Ошибка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY B.title DESC,B.psevd,P.picture_file FROM scms_brands B,scms_pictures P ' at line 1
Я не силен в этом...)) но вроде сервер не поддерживает такой синтаксис или я не так сделал как ты написал...
Выручай плиз))
$BRANDS .="<a href='http://{$ROOT}/catalog?brand_id={$id}' class='brand_item'>
<div class='wrap_img_brand'><img src='http://{$ROOT}/upload/brands/$img' alt=''></div>
<span class='as'>$name</span>
</a>";
}
$row['name'] содержит в себе имена на английском яз...
$name так же содержит те же самые имена...
пробовал делать так
asort($row['name']);
и так
asort($name);
Но безрезультатно((((
А пример как ни старнно работает
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>
вопрос к автору, удалось решить проблему?
помог данный индекс? Просто у меня та же проблема с тем же Битриксом. Но только база у меня на порядок больше.
я не пробовал добавлять индекс в битрикс самостоятельно))сам понимаешь...если там что то ляжет то жесть....если в PHP код я еще ковырял....то в базу не лез...МЫ эту проблему решили самостоятельно...залезли в код и подправили структуру запросов...летать стало...только когда обновляемся ..подмениваем файл...
Ребята подскажите в чем может быть причина на одном сервере один запрос работает быстро 0,3 сек а на другом 9сек хотя параметры медленного сервера в два раза выше ssd, 4GB ОЗУ а на втором 2GB.....
В принципе что даёт или конкретно этот?
Конкретно этот - рассчитываю, что будет релевантен запросу в первом сообщении и, соответственно, уменьшит время обработки за счёт более быстрого отсечения строк, не удовлетворяющих секции where.
В общем - компактное отсортированное множество значений. Позволяет СУБД читать только те строки, которые точно удовлетворяют условию (или его части), вместо того, чтобы читать все строки и отбрасывать ненужные.
более менее ясно))
Ок!Я тогда когда выполню...сразу отпишусь))
СПС..
CREATEINDEX idx_active_status_parent ON b_iblock_element (ACTIVE, WF_STATUS_ID, WF_PARENT_ELEMENT_ID)
Таблица у вас, видимо, довольно увесистая, так что индекс может создаваться продолжительное время.
Как индекс создастся - прикрепите актуальный explain.
explain не из phpmyadmin...
Это из админки сайта...
на тех первых mcrhby itnf[ есть какие то индексы и вот я сделал новый скрин шет по твоему запросу...