gims

Рейтинг
4
Регистрация
13.03.2014
Yur_OK:

У вас есть минимум 2 варианта.
1 – воспользоваться функцией uniqid() (результат которой основан на времени чем гарантируется уникальность создаваемых имен)

2 – взять за основу id строки. Но для этого придется выполнять 2 запроса к БД. Первый для записи информации о файле без имени, затем получаете id сделанной записи через mysql_insert_id() и генерируете короткое и уникальное имя на его основании тем же base_convert(id,10,36) затем вторым запросом обновляете поле с именем файла.

Спасибо, уже нашел пару статей про сервисы сокращения ссылок.

В первом варианте говорить о гарантиях трудно поскольку можно предположить ситуацию где есть вероятность дублирования. Насколько ничтожной она не была.

Второй вариант это то что используют сервисы сокращения ссылок. Возможно какие-то крутые сервисы имеют собственные бд и у них все это реализовано на уровне бд. Пока бд не возьмет эту работу на себя придется несколькими запросами работать.

VulkanPartner:
Это не бред, а возможность предоставить пользователю альтернативные товары (как правило, из тогоже раздела/подраздела) по цене, близкой к просматриваемой позиции.

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

На самом деле это будет не лучше выборки по айди. Для этой задачи нужна интеллектуальная система.


По id - вообще просто, вы же знаете id текущего товара на странице, делаете параллельный запрос для "id+1" и "id-1" и выводите...

И в чем разница между выборкой по id и ценой? "id>$id" и "id<$id" (товар может быть удален). Также у первого товара в бд не будет предыдущей записи. Приходится делать много запросов. Хотелось услышать мнение по оптимизации этого процесса.

Я так и не понял TF-Studio и n1zee пишут ради того чтобы писать?

TF-Studio, Вы что группа поддержки? По вашему нелепые сравнения уместны? Для достижения четкости и ясности нужно было указать, что выборка исходя из айди? Я с удовольствием разъяснил свой вопрос, если задали нормальный уточняющий вопрос.

VulkanPartner:
Следующих и предыдущих по каким критериям? По ID-шнику? По цене? От большего к меньшему?

Я понимаю что у людей фантазия не имеет границ. Предыдущий товар по цене - если это не бред то что? Естественно исходя их id продукта. Не пойму причем тут сортировки?


Расширьте условия выборки, например... А вообще n1zee был максимально близок к правильному ответу на такой вопрос!

n1zee полезнее будет преподавать русский язык чем писать бессмысленные комментарии.

benmer:
Поздно в плане времени суток? У кого-то ночь, у кого-то утро. Существуют часовые пояса.

Интересное мышление) Постараюсь пояснить доступнее. Поздно означает что ваш прогноз бессменен после ответа ТС.


До моего метода вы додуматься не можете, зато претенциозно ответить вам по силам :)

Научитесь различать претензии и вопросы.


Вот товарищу Mad_Man, в отличие от вас, не составило труда просто без лишних слов выложить рабочий скрипт.

К сожалению я не телепат чтобы читать мысли.

Надеюсь ответил на все вопросы и можем закрыть тему.

LEOnidUKG:
Если не изменяет память, там сделано как в укорачивании ссылок, просто по порядку.

Понятное дело что берется инкремент предыдущей стоки) Это как автоинкримент для числовых строк в mysql. Хотя как вижу большинство генерируют рандомный набор чисел, символов и еще колдуют над ней) Не спорю для маленьких сайтов может это и допустима но для крупных проектов это не допустимо. Вопрос остается в том как это грамотно реализовать.

Mutabors:
Допустим 0123456789abc...z получаете 33-ю систему исчисления. Дальше просто преобразовываете поле с автоинкрементом в эту систему исчисления и получаете уникальное имя файла, притом максимально короткое.

Я думаю в этом направлении. Только кто этим будет занимается? Если переложить все на php будут проблемы. Ведь нужно узнать у базы последнее значение, получить его инкремент и снова писать в бд название нового. Это не есть хорошо, поскольку в промежутке еще кто-то загрузит файл.

А вот инкремента строк в mysql не нашел..

LEOnidUKG:
загружает пользователь?

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

12
Всего: 18