powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка строк по их порядковому номеру
25 сообщений из 44, страница 1 из 2
Выборка строк по их порядковому номеру
    #38932770
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Из базы MySQL вытаскиваю общее количество записей и потом мне надо в цикле их перебирать. ИД записей, по которым хоть как-то можно было б их перебирать нету. Хочу в цикле перебирать записи обращаясь к ним по порядковому номеру в таблице.

Как это правильно сделать?
спасибо.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932783
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51Хочу в цикле перебирать записи обращаясь к ним по порядковому номеру в таблице.У записей в таблице нет "порядкового номера".
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932789
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это я понимаю, если б они были я б не поднимал вопрос )
Поэтому и спрашиваю у опытных как решать эту задачу )
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932792
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MySQL с таблицами работают SQL-запросами а не циклами.
ну если так необходимо какое-то ID (rownum) -
FAQ: Нумерация строк и другие вопросы про использование переменных
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932797
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51,

покажите вывод
SHOW CREATE TABLE вашаТабл;
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932799
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_UstinovВ MySQL с таблицами работают SQL-запросами а не циклами.
ну если так необходимо какое-то ID (rownum) -
FAQ: Нумерация строк и другие вопросы про использование переменных Да нет, тут вопрос в другом. Вот ТС пишет "Из базы MySQL вытаскиваю <...> и потом мне надо в цикле их перебирать <...> Хочу в цикле перебирать записи обращаясь к ним по порядковому номеру в таблице.". Отсюда следует, что он уже эти записи (или как минимум их ид) выбрал на клиент, так нахрена ещё раз их нумеровать? На клиенте они явно в массиве лежат, ну так и перебирай тот массив. Ну или ему какая-то специальная сортировка нужна, так опять же - задай сортировку в запросе, получи отсортированный список ид в массив и проходись по нему по порядку. В общем, непонятно, зачем ТСу в принципе эта нумерация, если он один хрен запускает цикл на клиенте, где эта нумерация уже есть .
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932806
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По ссылке:
Задача: Пронумеровать строки в запросе
Достаточно часто возникает необходимость пронумеровать возвращаемые MySQL строки средствами самой базы данных.

а мне надо сделать так:
<?
$c = количесво строк в таблице;
for ( $i = 0; $i <= $c; $i++ ) {
$res = mysql_query( ' SELECT * FROM my_table WHRE номер_строки_в_таблице = $i' );
...
...
}
?>

Вот как-то так...
А так как такой запрос не делал никогда то написал схематически то что надо....
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932830
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
<?
$c = количесво строк в таблице; //ну и откуда вы это число берёте?
for ( $i = 0; $i <= $c; $i++ ) {
    $res = mysql_query( ' SELECT * FROM my_table WHRE номер_строки_в_таблице = $i' );
    ... //тут типа обработка каждой записи отдельно?
    ...
}
?>

Так ЯННП, что мешает сделать вот типа так?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
<?
    $res = mysql_query( ' SELECT * FROM my_table' );
    for ( $i = 0; $i <= record_count($res); $i++ ) {
      ...
      ...
    }
}
?>

Начешуя 100500 запросов кидать, если вы всё равно всю таблицу выгребать собрались?
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932834
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir
Код: php
1.
$i <= record_count($res)

Не советовал бы. Лучше просто цикл до конца выборки.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932836
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirdalexra51
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
<?
$c = количесво строк в таблице; //ну и откуда вы это число берёте?   --- SELECT COUNT...   проблема что-ли????? 
for ( $i = 0; $i <= $c; $i++ ) {
    $res = mysql_query( ' SELECT * FROM my_table WHRE номер_строки_в_таблице = $i' );
    ... //тут типа обработка каждой записи отдельно?
    ...
}
?>

Так ЯННП, что мешает сделать вот типа так?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
<?
    $res = mysql_query( ' SELECT * FROM my_table' );  //  знаешь сколько эта звездочка может весить??????
    for ( $i = 0; $i <= record_count($res); $i++ ) {
      ...
      ...
    }
}
?>

Начешуя 100500 запросов кидать, если вы всё равно всю таблицу выгребать собрались?
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932840
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, не, ну это просто идея. Можно заранее количество посчитать или делать так, как вы сказали. Просто такое впечатление, что ТС переходит на пхп+мускль с какого-то FPD2.0 и тянет за собой все старые привычки.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932841
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51SELECT COUNT... проблема что-ли?????Итого вместо одного запроса получим N+1, где N - количество строк в таблице. Проблема.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932859
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51,

если вы просто выводите данные, то прокатит. Если вы собираетесь как-то изменять данные, то вам все равно нужен уникальный ключ. Примеры есть в документации по PHP .
пример использования mysqli<?php
$mysqli->real_query('SELECT * FROM `test`');
$query = $mysqli->store_result();
while ($row = $query->fetch_assoc()) {
$id = (int) $row['id'];
$query2 = $mysqli->query("UPDATE `test` SET `label` = md5(rand()) WHERE `id` = $id");
}
?>
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932862
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51Хочу в цикле перебирать записи обращаясь к ним по порядковому номеру в таблице.

Понятие порядка у записи в таблице возникает при выборке с сортировкой. До этого никакого порядка нет.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
<?
$c = количесво строк в таблице;
for ( $i = 0; $i <= $c; $i++ ) {
$res = mysql_query( ' SELECT * FROM my_table WHRE номер_строки_в_таблице = $i' );
...
...
}
?>



<Страшно кричит>
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932882
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем получается что прямых механизмов нету.
Поэтому придется делать это просто в каздом запросе делать офсет

1. tanglir, за один запрос выбрать все и потом этим манипулировать не получится, так как выбранное может весить гигабайты
2. Alex_Ustinov, данные просто выводятся и обрабатываются. обратно ниче не пишется.

Есть еще варианты кроме пошагового OFFSET $i++ с количеством шагов = количество записей?
спасибо
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932890
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вриант по ссылке из FAQ
Код: sql
1.
2.
SELECT @i := @i + 1 AS row_number, your_table.*
FROM your_table, (select @i:=0) AS z;
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932897
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51,

никогда не нужен запрос на гигабайты, конкретизируйте в условии по периоду по еще какому-нибудь признаку
Расскажите, с какой целью вы хотите "перебрать в цикле записи"
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932902
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra511. tanglir, за один запрос выбрать все и потом этим манипулировать не получится, так как выбранное может весить гигабайтыНо не было речи о том, чтобы хранить это все в памяти одновременно. Буфер может быть размером вообще всего на одну запись.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932904
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51Есть еще варианты кроме пошагового OFFSET $i++ с количеством шагов = количество записей?Если речь про конструкцию LIMIT ... OFFSET ..., то это, пожалуй, наихудший вариант из возможных.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932912
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, а какие найлучшие?
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932921
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dalexra51а какие найлучшие?вы сначала расскажите, что вы хотите сделать. Если это не секрет, конечно. Не "как", а "что".
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932925
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я кажись понял, что ему надо.

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

и вот за раз не достать их, надо пошагам, но чтобы достать всё, и каждую запись один раз гарантировано...


для ТС
ну так, первичный ключ автоинкремент, и ориентироваться по нему.

И=0
ШАГ цикла- выбор записей с айдишниками больше И сортируя по айди по возрастанию, не более Н штук . И=И+Н

и проходишь их все...читая по 1000 записей, по 10000 например.

===
есчё есть вариант сделать выбор в файл, и читать файл
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932930
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453у него есть таблица - пусть это будет архвив за 50 лет погоды, и вот надо пройтись по всем записям и считывать для простоты температуру скажем, дабы среднее посчитать.

Этот пример не объясняет, зачем лупить циклы с выборкой, ибо "среднее" считается одним запросом к базе данных.
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932932
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453ну так, первичный ключ автоинкремент, и ориентироваться по нему.
dalexra51ИД записей, по которым хоть как-то можно было б их перебирать нету
...
Рейтинг: 0 / 0
Выборка строк по их порядковому номеру
    #38932944
dalexra51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица (title, text, attach, desc, img) (поля могут весить много, например изображения в base64 и так далее)

надо: по очереди выбрать все поля (только чтение!)(данные потом будут вставлять в другие структуры которые не имеют отношения к теме)

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

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

поэтому: клиент дает запрос на выборку - обработчик достает запись и отдает клиенту - после манипуляций клиент запрашивает след запись ($i++) - обработчик достает след запись (след строку таблицы) и отдает клиенту..... и так далее
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка строк по их порядковому номеру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]