как перебирать/шагать_по/листать строки SQL-выборки ?

s60

Новичок
как перебирать/шагать_по/листать строки SQL-выборки ?

до php спокойно делал связку VBA - ADO - MSSQL и все просто и понятно, а тут... :confused:

Вводная: оператором SELECT из таблицы mySQL получаю табличку-выборку запрошенного. Первую строчку получаю :
PHP:
mysql_fetch_array(mysql_query("SELECT * FROM ".$table_name.)
далее как PHP мануале:
PHP:
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {         printf ("ID: %s  Name: %s", $row[0], $row[1]);       }
Вопрос: ПОЧЕМУ В while ПРОИСХОДИТ ПРОХОД ПО ВСЕМ СТРОКАМ таблички-выборки ???
как перебрать строки с помощью for ?
 

Фанат

oncle terrible
Команда форума
потому что смещается указатель.
непонятно, в чем вопрос.

только непонятно, откуда у тебя переменная $result берется
 

s60

Новичок
в том и вопрос : почему/по какой причине/кто его смещает ???
и как мне управлять его смещением...

(а то что указатель смещается я в курсе, см. перед Вводной)

я ж говорю: из мануала по PHP, я не стал весь кусок постить..

в оригинале так :
PHP:
 <?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);  
    }

    mysql_free_result($result);
?>
а вопрос в названии тему: как перебирать/шагать_по/листать строки SQL-выборки ? (если не через while )
 

Фанат

oncle terrible
Команда форума

s60

Новичок
я получаю комментарии столбцов таблицы (для подписей в таблице сайта) таким селектом:
PHP:
 "SELECT column_comment FROM information_schema.columns WHERE table_name = '".$table_name."' AND table_schema = 'mysite2db'"
получаю столбец 'column_comment' в 5 строк:
Название
Описание
Материал
Цена

и мне надо пользоваться этими строками вразнобой - в цикл не засунешь...

в какой момент АПИ смещает указатель? когда делаешь присвоение $row = mysql_fetch_array($result, MYSQL_NUM) ?
 

Фанат

oncle terrible
Команда форума
я все в толк не возьму - в чем проблема-то.
промотал через while выборку, записал в массив, и делай с ней дальше что хошь. зачем куда-то ходить, что-то листать?
 

s60

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

А указатель получается неуправляемый и API его смещает в момент ... (какой) ?
 

Фанат

oncle terrible
Команда форума
да какая разница-то? нафига тебе им управлять? что ты собрался - в шахматном порядке что ли записи выбирать?
 

prolis

Новичок
s60
Ты наверно раньше клиентские приложения писал. Там были открытые курсоры, положение которых управлялось пользователем. А в веб-архитектуре к моменту передачи управления пользователю все коннекты к базе уже закрыты, от приложения ничего не зависит. Поэтому на стороне сервера сразу за один проход по рекордсету все заполняется.
 
Сверху