- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Имеем
Как то можно сделать без foreach используя $spisokid и Ускорит ли это процесс?
Вынуть нужно данные по первым 15ти id указанным в $spisokid
Спасибо
Здравствуйте.
Имеем
Каким образом Вы без перебора ID сделаете выборку по ID?
Хотя можно Select ... from ... where id in (id1, id2..., ..., idN). Типа того.
Если идентификаторы целые, а в $spisokid содержится перечисление целых в виде 1|2|3|4:
Ускорит ли это процесс?
Однозначно.
koders, я правильно понял, как Вы показали будет быстрее, чем через foreach ?
Да, я забыл указать, надо из $spisokid взять первые 15 значений.
так будет верно?
$result33 = mysql_query("SELECT `url`, `photo` FROM `katalog` WHERE `id` IN (" . strtr($spisokid, '|', ',') . ") LIMIT 0,15");
while ($row = mysql_fetch_assoc($result33)) {
$nextur[]=$row['url'];
$nextproto[]=$row['photo '];
}
Каким образом Вы без перебора ID сделаете выборку по ID?
Простите. я не понял вопроса. С foreach все работает.
koders, я правильно понял, как Вы показали будет быстрее, чем через foreach ?
Да, я забыл указать, надо из $spisokid взять первые 15 значений.
так будет верно?.
В изначальный вопрос не вчитывались, но where id in (1,2,3,4,5) limit 0,2 не обязательно выдаст id 1 и 2, может выдать 3 и 5 или 2 и 5 - порядок не определён.
В изначальный вопрос не вчитывались, но where id in (1,2,3,4,5) limit 0,2 не обязательно выдаст id 1 и 2, может выдать 3 и 5 или 2 и 5 - порядок не определён.
Код where id in (1,2,3,4,5) limit 0,15 работает.
Значит порядок, который задан в $spisokid = "35|7|22|340|104|1456|367|478....."; можно соблюсти, только через цикл foreach ?
Да, все же порядок не тот, как задан в списке.
Сортирует по id
Код where id in (1,2,3,4,5) limit 0,15 работает.
Значит порядок, который задан в $spisokid = "35|7|22|340|104|1456|367|478....."; можно соблюсти, только через цикл foreach ?
Да, все же порядок не тот, как задан в списке.
Сортирует по id
Он даже не сортирует по ИД, просто так совпало, что выборка отсортирована по ИД.
Совпадает так достаточно часто (т.к. выбирается обычно исходя из физического расположения на диске), но полагаться на это нельзя.
Форич не обязательно, просто в where пихайте только первые 15 элементов. Порядок их как мы поняли Вам не важен.
Например так $spisokid=implode(',',array_slice(explode('|',$spisokid),0,15));
и дальше where id in (".$spisokid.")
Он даже не сортирует по ИД, просто так совпало, что выборка отсортирована по ИД.
Совпадает так достаточно часто (т.к. выбирается обычно исходя из физического расположения на диске), но полагаться на это нельзя.
Форич не обязательно, просто в where пихайте только первые 15 элементов. Порядок их как мы поняли Вам не важен.
Например так $spisokid=implode(',',array_slice(explode('|',$spisokid),0,15));
и дальше where id in (".$spisokid.")
Простите, я уже поравил и первый пост и дальше, где показан пример содержимого $spisokid
Там они отсортированы уже по цене товара.
Порядок указанный в $spisokid должен быть соблюден.
Сделал замеры , foreach показывает время 0,01-0,015. А вашим вариантом 0,002.
соблюсти порядок можно по ORDER BY FIELD(ваш_список_из_ID_через_запятую)
ещё советую мапнуть список сконвертировав в int, а то не очень понятно откуда он пришел, вдруг это из query пришло.
ну и да, prepared statements юзайте.
соблюсти порядок можно по ORDER BY FIELD(ваш_список_из_ID_через_запятую)
ещё советую мапнуть список сконвертировав в int, а то не очень понятно откуда он пришел, вдруг это из query пришло.
ну и да, prepared statements юзайте.
список $spisokid от сюда
Мапнуть это так?
$id = $roqqq['idvkat'];
$id = (int)$id;
$idkat[]=$roqqq['idvkat'];
---------- Добавлено 01.08.2018 в 22:58 ----------
danforth, не будете так любезны мне помочь с ORDER BY FIELD(ваш_список_из_ID_через_запятую) ?
$spisokid = implode(",", $idkat);
а как построить запрос для выборки с 0 первых 15ти значений из $spisokid
так?
Простите. я не понял вопроса. С foreach все работает.
foreach и есть перебор
for each, для каждого
---------- Добавлено 02.08.2018 в 00:18 ----------
edogs, а сколько вас там? Странно читать сообщения от "Мы, Николай Второй".