Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 11
MySQL

Как отсеять несуществующие товары?

22.07.2016, 16:39. Показов 760. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Аналогичная проблема. Навыков в php мало, так что сам не справляюсь.

Ссылки и имеют такой вид: ?view=product&goods_id=57 и ?view=cat&category=2

Часть кода:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function catalog(){
    $query = "SELECT * FROM categories ORDER BY category_id";
    $res = mysql_query($query) or die(mysql_query());
    
    // массив категорий
    $cat = array();
    while($row = mysql_fetch_assoc($res)){
        if(!$row['parent_id']){
            $cat[$row['category_id']][] = $row['category_name'];
        }else{
            $cat[$row['parent_id']]['sub'][$row['category_id']] = $row['category_name'];
        }
    }
    return $cat;
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function product($category){
    $query = "(SELECT goods_id, name, img, price, old_price, hits, new, sale
        FROM goods 
            WHERE good_brandid = $category AND visible='1')
        UNION
        (SELECT goods_id, name, img, price, old_price, hits, new, sale
            FROM goods
                WHERE good_brandid IN
            (
                SELECT category_id FROM categories WHERE parent_id = $category
            ) AND visible='1')";
    $res = mysql_query($query) or die(mysql_error());
    
    $products = array();
    while($row = mysql_fetch_assoc($res)){
        $products[] = $row;
    }
    
    return $products;
}
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function get_goods($goods_id){
    $query = "SELECT * FROM goods WHERE goods_id = $goods_id AND visible = '1'";
    $res = mysql_query($query);
    
    $goods = array();
    $goods = mysql_fetch_assoc($res);
    if($goods['img_slide']){
        $goods['img_slide'] = explode("|", $goods['img_slide']);
    }
    
    return $goods;
}
В .htaccess 404 прописано, а вот как отсеять несуществующие товары не могу догнать. Спасибо)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2016, 16:39
Ответы с готовыми решениями:

Не знаю, как занести в корзину товары
Представьте. Я кликаю на товар, далее нажимаю "добавить в корзину". Товар уже находится в сессии. Но, когда я захожу в корзину,...

Как подключить оплату за товары по карте?
Вопрос, может, не по теме немного...но мне на сайт нужно прикрутить оплату за услуги. как это делать понятия не имею. находила только...

Как импортировать товары от разных поставщиков
Поставщики скидывают прайс листы, у одного поставщика есть товары которые есть у другого, но у них разные названия и свойства написаны по...

3
0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 11
24.07.2016, 17:10  [ТС]
Вышел из положения так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function get_goods($goods_id){
    $query = "SELECT * FROM goods WHERE goods_id = $goods_id AND visible = '1'";
    $res = mysql_query($query);
    
    $goods = array();
    $goods = mysql_fetch_assoc($res);
    if($goods['img_slide']){
        $goods['img_slide'] = explode("|", $goods['img_slide']);
    }
    if(empty($goods)){
        header ("HTTP/1.1 404 Not Found");
        header('Location:./404.php');
        exit();
    }
    return $goods;
}
Но так отсеиваются все товары, которые не передаются в массив, включая просто временно отсутствующие. А хотелось бы всё-таки отсеять те, которых нет в базе.
0
 Аватар для php10
146 / 105 / 44
Регистрация: 30.04.2016
Сообщений: 550
24.07.2016, 20:24
Крайне непонятная функция get_goods, Она она возвращает у вас один товар или множество? Все дело в запросе, WHERE goods_id = $goods_id, у вас же выборка по одному товару идет, и если ИД товара не существует, как он может быть показан?
0
0 / 0 / 0
Регистрация: 22.07.2016
Сообщений: 11
25.07.2016, 05:17  [ТС]
Вот что в контроллере:

PHP
1
2
3
4
5
6
7
    case('product'):
        // отдельный товар
        $goods_id = abs( (int)$_GET['goods_id'] );
        if($goods_id){
            $goods = get_goods($goods_id);
        }
    break;
Подозреваю, что надо тут прописать какое то условие. Но не нашел какое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2016, 05:17
Помогаю со студенческими работами здесь

В постах wordpress используются несуществующие url
В постах wordpress используются несуществующие url. Ведь в файловой системе нет папок с именами категорий, статей. Подскажите пожалуйста...

Как отсеять ip-v4 из IPAddress
дело в том, что Dns.GetHostAddresses загоняет в IPAddress сначала ipv6, а потом для того же подключения ipv4. если на компе одно сетевое...

Как отсеять вывод ipv6
Всех с прошедшими праздниками и удачи в новом году. Возник такой вопрос. Пишу небольшой скрипт для инвентаризации ПК и один из...

Как в задаче с рандомом отсеять повторяющиеся?
Есть задачка: "Вывести 3 случайных числа от 0 до 100 без повторений." Как бы это так сделать без повторений? Помогите с алгоритмом. ...

Ребят, подскажите, как отсеять лишнее
Есть исходный код страницы _http://game-bot.com/script?uid=4703259&lvl_from=1&lvl_to=25 Вот кусочек. <div><div...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru