[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как присвоить имя ссылке автоматом?
Страницы: 1, 2
te6a
Уважаемые форумчане, здравствуйте!!!
Пытаюсь самостоятельно сделать перелинковку страниц каталога.
Есть товар, определяется по ID и имя его по name от ID.
Создаю ссылку на следующий товар, просто прибавляя к текущему ID +1, ссылка генерируется, а вот как этой ссылке присвоить имя следующей страницы ума не приложу, можете подсказать как присвоить имя или может как изменить генерирование ссылки для правильного отображения имени?
примерная часть кода:
<?php echo images::isset_image(IMG_CATALOG_PATH."/01/".($obj->id+1)."_1.jpg",$obj->name,''); ?>
<a href="<?php echo general::link('catalog/goods/'.$obj->id+1,$obj->name); ?>" class="item_name_title"><?php echo $obj->name; ?></a>

Чтот типа того :huh: Подскажите плиз, заранее спасибо!!!
kaww
te6a
, инкрементить ид текщего товара, чтобы получить следующий нельзя. т.к. возможен вариант, что товар со следующим ид находится в другом каталоге или он не должен выводиться на сайте или вообще уже удален. Поэтому тут не обойтись без запроса в БД.
Игорь_Vasinsky
1. удалил товар или несколько - вся твоя ссылочная иерархия с +1 посыпалась
2. если п1 - не важен - то надо запросом наверно имя товара дёргать из Бд

или сначала всё выдернуть - получить массив - а потом из этого массива выдёргивать имя по id+1

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
te6a
Спасибо за ответы!!!
Терь хоть примерно знаю куда двигаться smile.gif
Проблем быть не может, так как:
1.Товары к каталогу не привязаны
2.При отсутствии по ID товара выводится надпись об отсутствии товара (думаю такая мелочь не сильно скажется на продвижении)

Таким образом, понимаю что выдергивание имени из базы самый оптимальный вариант, спасибо , буду пробовать....
Если не трудно, подскажите как проще "выдернуть" unsure.gif
te6a
Огромаднейшее спасибо!!!!
Кажется получилось smile.gifsmile.gifsmile.gifsmile.gif
Надеюсь не говнокоды ваяяю smile.gif
kaww
Цитата (te6a @ 30.04.2013 - 06:29)
думаю такая мелочь не сильно скажется на продвижении

Это совсем не мелочь, получается, что пользователь нажимает ссылку на странице (не вводит ее руками в адресную строку!) и получает 404 страницу ну или что там у вас ,но однозначно не то что он ожидал.

Следующий товар можно взять так:
$res = mysql_query('select * from products where id > ' . $obj->id . ' order by id limit 1');
$nextProduct = mysql_fetch_assoc($res);
te6a
Эммм, спасибо, как-то не думал о необходимости такого усовершенствования, думал это тяжеловато....
Теперь задумался :):), но как это реализовать? Ща буду пробовать...
Пока вот что у меня получилось :
 <?php      if (isset($_GET['goods'])) {

// строим запрос
$_sql='SELECT name FROM catalog where id='.intval($_GET['goods']+1).' and status=1';
// выполняем запрос + при необходимости выводим сам запрос
$result=mysql::query_one($_sql,0);

/*
* определяем переменные
*/

$_name = $result->name;



} ?>

Перейти к следующему товару:
<
a href="<?php echo general::link('catalog/goods/'.($obj->id+1),$_name); ?>" class="item_name_title"><?php echo $_name; ?></a>

А при отсутствии товара у меня пока выводится типа: Выбранный вами товар отсутствует.
kaww
te6a
, выше есть готовый запрос для получения следующего товара. Зачем id+1? ведь может и не быть товара с ид id+1

$sql = 'SELECT name, id FROM catalog where id >'.$obj->id.' and status=1 order by id limit 1';
$result=mysql::query_one($sql,0);


Перейти к следующему товару:
if ($result) {
<a href="<?php echo general::link('catalog/goods/'.$result->id,$result->name); ?>" class="item_name_title"><?php echo $result->name; ?></a>
}
te6a
Спасибо большое!!!
Получилось, немного не так, но результат очень радует :):):)
<?php      if (isset($_GET['goods'])) 
{

$_sql='SELECT name, id FROM catalog where id>'.intval($_GET['goods']) .' and status=1'.' order by id limit 1';
$result=mysql::query_one($_sql,0);
} ?>
Перейти к следующему товару:
<
a href="<?php echo general::link('catalog/goods/'.$result->id,$result->name); ?>" class="item_name_title"><?php echo $result->name; ?></a>


Благодарю за отзывчивость и реальную помощь!!!
Игорь_Vasinsky
Цитата
<?php echo


можно

<?=


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
andrey888
а зачем вообще выводить товары которые отсутствуют ? 0_о

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
te6a
andrey888, к сожалению в используемой CMS все товары независимы друг от друг и отличаются по ID, тобишь числовыми значениями, соответственно можно ненароком ввести число, по ID которого нет товара, на этот случай "создатели" данной CMS и придумали вывод страници с "Такого товара нет. Выбранный вами товар отсутствует."
ХЗ, задумка создателей.
andrey888
1) нет, если это случай когда в детали товара можно зайти (как пример)
?tovar=1890 , а скажем кто нить возьмет и изменит GET параметр на ?tovar=189999
то это ясно тут надо вывести что такого товара НЕТ либо редайректить пользователя на главную страницу скажем.

2) Но я по твоему посту понял что СРЕДИ выведенных товаров УЖЕ будут те которых нет .. То есть в детали которых мы не сможем попасть ..

Вывод : Первый случай - все ОК , так и НАДО.
Второй случай - меняй CMS ) это бред.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
te6a
smile.gif
Нет, первый случай.
Второй эт понятно бред был бы smile.gif
te6a
Здравствуйте!!!
Благодаря вашей помощи сделал неплохую перелинковку, но всё не давал покоя один вопрос...
<?php      if (isset($_GET['goods']))
{

$_sql='SELECT name, id FROM catalog where id>'.intval($_GET['goods']) .' and status=1'.' and sklad=1'.' order by id limit 1';
$result=mysql::query_one($_sql,0);
} ?>

<a class="img_link" href="<?php echo general::link('catalog/goods/'.$result->id,$result->name); ?>">


<?php echo images::isset_image(IMG_CATALOG_PATH."/01/".$result->id."_1.jpg",$result->name,''); ?>
</a>
<
a href="<?php echo general::link('catalog/goods/'.$result->id,$result->name); ?>" class="item_name_title"><?php echo $result->name; ?></a>

Вот так я сделал, все получилось ... кроме, когда в выдаче последняя страница круг соответственно прерывается, хз как решить проблемку прям--- это первое
сейчас хочу добаить ссылок для перелинковки, придумал по количеству просмотров, но как сделать, чтоб в случае совпадения с первым случаем второй показывал бы следующий линк?
или еще, по дате добавления, но как вытащить дату пока не разобрался, прямо в mysql дата в виде: 2014-01-22, а как в php её воткнуть? и опять таки при совпадении с первыми двумя....
Вот замутил же :ph34r:
Буду рад любой помощи или предложениям!!!
Быстрый ответ:

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