Срочно внести изменения в код!

Статус
В этой теме нельзя размещать новые ответы.
Вот что показывает:
SELECT * FROM listings WHERE (category='Painting' OR category2='Painting') AND hide!='1' AND (expire>'1251632626' OR expire='' OR expire='0') AND (user_expire>'1251632626' OR user_expire='' OR user_expire='0') ORDER BY make ASC LIMIT 0, 10


вот вторая категория
SELECT * FROM listings WHERE (category='Works on paper' OR category2='Works on paper') AND hide!='1' AND (expire>'1251633194' OR expire='' OR expire='0') AND (user_expire>'1251633194' OR user_expire='' OR user_expire='0') ORDER BY make ASC LIMIT 0, 10


а вот эта не должна входить в результат поиска

SELECT * FROM listings WHERE (category='Our Museum' OR category2='Our Museum') AND hide!='1' AND (expire>'1251633267' OR expire='' OR expire='0') AND (user_expire>'1251633267' OR user_expire='' OR user_expire='0') ORDER BY make ASC LIMIT 0, 10
 
И снова затишье:confused:
 
category!='твоя категория'
 
хмм а можно пример как это вставить или куда это вставить??
 
SELECT * FROM listings WHERE (category!='твоя категория' AND category2!='твоя категория') AND hide!='1' AND (expire>'1251632626' OR expire='' OR expire='0') AND (user_expire>'1251632626' OR user_expire='' OR user_expire='0') ORDER BY make ASC LIMIT 0, 10
 
VAVE, а почему 3 запроса то? Они у тебя каждый отдельно посылаются в каком то цикле? если да, то просто поставь проверку на НЕнужную категорию перед отправлением запроса... типа
PHP:
if($category != 'Our Museum') {
 твой запрос
}

тогда просто не будет отправляться третий запрос в бд
 
Просто у меня на каждую категорию своя страничка, типа:
index.php?menu=страничка1&submit=Search&category=категория1
index.php?menu=страничка2&submit=Search&category=категория2
index.php?menu=страничка3&submit=Search&category=категория3

а в результате поиска на одной общей странички, там тот-же самый запрос
PHP:
if($conf[featured]) $first = "featured DESC,"; else $first = "";
$result = mysql_query("SELECT * FROM $dblist $where ORDER BY $first $_GET[srt] LIMIT $start, $_GET[p]", $link);
просто 3ю категорию надо исключить из результата!
сейчас буду пробовать:)
 
Пробую но не получается!
Если я вставляю этот код
PHP:
SELECT * FROM listings WHERE (category!='твоя категория' AND category2!='твоя категория') AND hide!='1' AND (expire>'1251632626' OR expire='' OR expire='0') AND (user_expire>'1251632626' OR user_expire='' OR user_expire='0') ORDER BY make ASC LIMIT 0, 10

то всё глючит, одна категория выходит из результата поиска но не работают критерии поиска и нет возможности листать страницы,
можете подробнее показать пример на этом коде:
PHP:
<div align="center">
    <table border="0" width="100%" id="table1" cellspacing="0" cellpadding="0">
        <tr>
        <tr>
            <td height="16" align="left" width="100%"><font size="2" face="Arial">&nbsp;<?php
if($conf[featured]) $first = "featured DESC,"; else $first = "";
$result = mysql_query("SELECT * FROM $dblist $where ORDER BY $first $_GET[srt] LIMIT $start, $_GET[p]", $link);
if(mysql_num_rows($result)) {
    $n = 0;
    while($row = mysql_fetch_array($result)) {
        // determine which image to display
        if($row[images]) {
            $image = mysql_query("SELECT fname FROM $dbimgs WHERE listid='$row[id]' ORDER BY id ASC LIMIT 1", $link);
            $image = mysql_fetch_array($image);
            $image = "thumbs/".$image[fname];
        } else {
            $image = "common/no-photo-thumb.jpg";
        }
        // make data display-friendly
        $row = safe_data($row, 'display');
        if($n % 2) $alternate = "alt"; else $alternate = "";
        // create variable string to pass
        $show =  "show.php?id=$row[id]";
        foreach($_GET as $name => $value) if($name != 'id') $show .= "&amp;$name=$value";
        echo "<div class='listing $alternate'>";
        // featured status
        if($row[featured]) echo "<div class='featured'>F E A T U R E D</div>";
        // photo
        echo "<div class='photo'><a target='_blank' href='$show'><img class='none' src='$image' width='200' alt=''/></a></div>";
        // general information
        echo "<div class='info'>";
        echo "<a target='_blank' href='$show'><strong><font size='3'>";
        echo " $row[make]</strong></a></font>";
        echo "</div>";
        // description summary
        echo "<div align='left' class='description'>";
        if($row[tagline]) echo "<strong>$row[tagline]</strong>";
        elseif($row[description]) echo summary($row[description], 20)." <a target='_blank' href='$show'>More</a>";
            echo "<br/>";    
        echo "</div>";            
        // compare check box
        echo "</div>";
        $n++;
    }
} else {
    echo "<div id='msg-alert'>We're sorry, no listings could be found that match your query.</div>";
}
?></font></td>
        </tr>
        <tr>
            <td width="100%">&nbsp;</td>
        </tr>
        <tr>
            <td width="100%"><div class='pages'>
    <font size="2" face="Arial" color="#333333">Page <?php echo $_GET[page]; ?> of <?php echo $pages; ?>&nbsp;&nbsp;(<?php echo $total; ?> 
    Listings)
    <?php if($pages > 1) { ?>
    </font><div class='links'>
        <font size="2" face="Arial" color="#333333">
        <?php $_GET = safe_data($_GET, 'display'); page_links($_GET, $pages, $_SERVER[PHP_SELF]); ?>
        </font>
    </div>
    <font size="2" face="Arial" color="#333333">
    <?php } ?></font></td>
        </tr>
    </table>
</div>
 
Первый запрос был из файла module-listings.php
а в module-initialize.php такой запрос:
PHP:
// get total number of listings for display
	$result = mysql_query("SELECT COUNT(*) FROM $dblist WHERE hide!='1' AND (expire>'".time()."' OR expire='' OR expire='0') AND (user_expire>'".time()."' OR user_expire='' OR user_expire='0')", $link);
	$display_total = mysql_fetch_array($result);
если я вставляю код:
PHP:
$result = mysql_query("SELECT * FROM listings WHERE (category!='Painting' AND category2!='Painting') AND hide!='1' AND (expire>'1251632626' OR expire='' OR expire='0') AND (user_expire>'1251632626' OR user_expire='' OR user_expire='0')", $link);
в файле module-listings.php вместо этого:
PHP:
$result = mysql_query("SELECT * FROM $dblist $where ORDER BY $first $_GET[srt] LIMIT $start, $_GET[p]", $link);
то нужная категория исчезает из списка как надо, но за это пропадают почему-то важные функции поиска по критериям, тоесть внешне запрос выглядит так index.php?make=111&submit=Search
там где 111, должны быть все товары под названием 111, а после замены кода, вылазиютт всё безразборочно кроме категории Painting

или подскажите, можно какнибудь тут прописать функцию скрытия одной категории?
PHP:
// do not show hidden and expired listings
$display = "hide!='1' AND (expire>'".time()."' OR expire='' OR expire='0') AND (user_expire>'".time()."' OR user_expire='' OR user_expire='0')";
if(!$where) $where = "WHERE ".$display;
else $where .= "AND ".$display;
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху