Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076

ЧПУ: имя товара вместо id

30.09.2012, 12:19. Показов 3641. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
если раньше например я выбирал товары из базы по айди запросами мускульными.
то щас вот решил создать новое поле в таблице - и в нем хранить значение чпу и из базы уже надо доставать товары и подкаталоги уже не по йди, а по чпу??? т.к. в урле фигурирует значение гет-переменной, уже равное не айди, а чпу. Так?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2012, 12:19
Ответы с готовыми решениями:

Опишите класса товара. Поля класса: имя товара, цена товара, количество товара на склад
Опишите класса товара. Поля класса: имя товара, цена товара, количество товара на складе. Выполнить следующими методами: 1) класс с...

Настройка ЧПУ для вывода бренда и артикула товара
Как настроить ЧПУ так чтобы вместо названия товара выводился бренд и артикул как на этой ссылке: ...

Изменить имя записи в ЧПУ
Ситуация: Был черновик записи с именем в ЧПУ name.html. Был не созранен и удален. Создается новая запись, и ей автоматически присваивается...

12
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
30.09.2012, 12:23
а чем тебе по id не понравилось?
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
30.09.2012, 12:38  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
а чем тебе по id не понравилось?
да нравится мне по айди я и хочу по айди извлекать, но одно понять не могу - как мне с чпу тогда быть???
вот у меня дополнительное поле в каждой из таблиц - chpu.
а урл вида - ?x=1&biggroup=13
?x=1 - это я замаскирую - и будет выглядеть как /product/
а вот biggroup=13 - это подгруппа товара biggroup, где 13 айди подгруппы товаров! а я хочу чтоб чпу было вместо 13!!
biggroup=Kommutatory-upravlyaemye
Но возникает проблема!!! когда я получаю такой вид урла - я не могу провалиться внуть подгруппы товара!!!
0
 Аватар для MalcolmRed
11 / 11 / 0
Регистрация: 22.09.2012
Сообщений: 56
30.09.2012, 13:11
Sergio Aguero, используйте Mod_rewrite и настраивайте под себя адресацию. Или напишите мини контроллер, который будет разбивать адрес так, как вам нужно.
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
30.09.2012, 13:21  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php 
include("connect.php");
 
//проверка типов переменных и на существоание гет-переменных
if (isset($_GET['biggroup']))
    $biggroup = (int) $_GET['biggroup']; 
else
    $biggroup = '';
 
if (isset($_GET['id']))
    $id = (int) $_GET['id']; 
else
    $id = 0;
 
 
 ///если нажали ссылки "Продукты"
if ($x == 1) 
{
    if(empty($biggroup)) //получили группы товаров
        {
        
            $query = "SELECT `id` ,`name_group`,`image_url` FROM `group`";
            $result = mysql_query($query) or die("Invalid query: " . mysql_error());
            
            while($row = mysql_fetch_assoc($result))
            {         
                        echo '<h2 style="display:block;float:left;"><a href="#" style="text-decoration:none;color: #E36312;border-bottom:1px dashed #E36312">'.$row['name_group'].'</a><img style="margin-left:10px; vertical-align: middle;" src="/'.$row['image_url'].'"/></h2><div style="clear:both;"></div><ul>';
                        $query2 = "SELECT `id` ,`name`,`chpu`  FROM `biggroup` where `section` = '".$row['id']."'";
                        
                    $result2 = mysql_query($query2) or die("Invalid query: " . mysql_error());
                        $i = 1;
                        while($data = mysql_fetch_assoc($result2))
                        {
                         echo ' <li style="display: inline;margin-left: 7px;"><a href="?x=1&biggroup='.$data['id'].'">'.$data['name'].'</a></li>';
                         if ($i == 3) {
                          echo '<br />';
                          $i = 0;
                         }
                         $i++;
                        }
                       
                        echo '</ul>';
                    
            } 
                      //показываем категории товаров
        }
}
else 
{
 
        if(empty($id))
        {
            echo $biggroup;
            $query3="SELECT catalog.code AS ccode, prigroup.name AS pname, catalog.marka AS cmarka, catalog.cost AS ccost, catalog.curr AS ccurr, catalog.chpu AS cchpu
FROM catalog, prigroup, biggroup
WHERE prigroup.id = catalog.group2
AND catalog.group1 = '".$biggroup."'";
            
            $result3 = mysql_query($query3) or die("Invalid query: " . mysql_error());
            {
            ?>
            <table border="1" width="100%" cellpadding="0" cellspacing="0">
            <th><td>Артикул</td><td>Производитель</td><td>Наименование</td><td>Цена</td><td>Заказ</td></th>
            <?
            }
            while($row3 = mysql_fetch_assoc($result3))
            { 
            ?>
<tr><td><?php echo $row3['ccode'];?></td><td><?php echo $row3['pname']; ?></td><td><?php echo $row3['cmarka']; ?></td><td><?php echo $row3['ccost'].' <a href="#">'.$row3['ccurr'].'</a>'; ?></td><td><a href="#">Купить</a></td></tr>';
            <?
            }
            {
            ?>
            </table>
            <?
            }
            #показываем подкатегории товаров 
        
    
 
else 
{
    echo $biggroup;
    #показываем отдельный товар,
    
}
 
}
?>

Посоны, я не могу провалиться в подкатегории товаров и все!!
т.е. нажимаю ссылку "Продукты" - вижу категории товаров - в первый if зашел, все нормально, далее нажимаю на категорию и не могу провалиться в подкатегории и все!!!
Т.е. условие
PHP
1
2
3
 if(empty($id))
        {
            }
не срабатывает!!!
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
30.09.2012, 13:22
какой вид ссылки у тебя получается?
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
30.09.2012, 13:25  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
какой вид ссылки у тебя получается?
подкатегории товаров выглядят так:
?x=1&biggroup=1

где ?х=1 - это ссылка "Продуты"
а biggroup - подкатегория товара
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
30.09.2012, 13:26
Цитата Сообщение от Sergio Aguero Посмотреть сообщение
подкатегории товаров выглядят так:
?x=1&biggroup=1
это уже с чпу?
0
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
30.09.2012, 13:30  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
это уже с чпу?
нет)))

Добавлено через 49 секунд
я просто хотел бы провалиться внутрь категории товара сначала без чпу - а то у меня и с чпу и без чпу не получается провалиться внуть категории
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
30.09.2012, 13:30
после чпу адрес какой у тебя получается?
0
 Аватар для MalcolmRed
11 / 11 / 0
Регистрация: 22.09.2012
Сообщений: 56
30.09.2012, 13:32
Sergio Aguero, почему бы не использовать switch?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php 
 
$x = $_GET['x'];
$biggroup = $_GET['biggroup'];
switch($x)
{
    case 1:
        switch($biggroup)
        {
            case 1:
                // blah blah blah или вывод товаров продукта
            break;
            
            case 2:
                // blah blah blah
            break;
        }
    break;
    
    default:
        // blah blah blah или вывод продукта
    break;
}
?>
Это пример статичный а не динамичный, хотя его можно оптимизировать.
1
 Аватар для Sergio Aguero
452 / 443 / 21
Регистрация: 11.04.2012
Сообщений: 2,076
30.09.2012, 13:36  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
после чпу адрес какой у тебя получается?
/product/Kommutatory-upravlyaemye/

Добавлено через 29 секунд
MalcolmRed, щас попробую

Добавлено через 2 минуты
MalcolmRed, дак это у тебя простой переключатель - типо переменная одна $x может принимать сначала значения 1,2,3 ... и т.д.

Добавлено через 10 секунд
мне так не надо
0
 Аватар для MalcolmRed
11 / 11 / 0
Регистрация: 22.09.2012
Сообщений: 56
30.09.2012, 13:46
Цитата Сообщение от Sergio Aguero Посмотреть сообщение
Добавлено через 2 минуты
MalcolmRed, дак это у тебя простой переключатель - типо переменная одна $x может принимать сначала значения 1,2,3 ... и т.д.
Добавлено через 10 секунд
мне так не надо
Я написал что он статичный, но что бы сделать из него роутер, нужно принимать значения страницы (если их 5-10) и обрабатывать значения второго параметра. В вашем случае - подкатегория товара.

То есть, что то типа этого:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php 
 
$page = $_GET;
 
switch($page)
{
    case 'x':
        $q = mysql_query ("SELECT * FROM `table` WHERE `group` = mysql_real_escape_string('".$_GET['biggroup']."')");
        $res = mysql_fetch_assoc($q);
        if ($q)
        {
            echo 'All right';
        } else {
            echo 'Oh!';
        }
    break;
    
    default:
        // blah blah blah или вывод продукта
    break;
}
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2012, 13:46
Помогаю со студенческими работами здесь

ЧПУ с именем категории и названием поста вместо чисел
Привет У меня такая ссылка http://localhost/new/view.php?cat=2&amp;id=3412 Как сделать с при помошю Htaccess чтобы получить такую...

F0000000004 - что это, у меня в док. вместо товара:(
Как с этим бороться и откуда оно взялось. Во многих док. есть позиция вместо товара F0000000004 , F0000000005?? и как вернуть номенклатуру...

Триггеры: суммирование количества товара вместо добавления одинаковых записей
Есть таблицы &quot;Товар&quot;, &quot;Поставка&quot; . как сделать триггер которой будет срабатывать так: 1)если добавляем в таблицу &quot;Поставка&quot;...

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

Часто вместо изображения товара на странице каталога отображается белое поле
Есть простенький каталог товаров. Часто при просмотре списка товаров вместо изображения товара показывается белое поле. Я не могу взять в...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru