|
|
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
Народ, всем привет! Подскажите, плиз у меня никак не получается: В сессию хочу загрузить результат выгрузки из БД, а потом вывести как таблицу на другом листе, делаю так: Php1: $_SESSION['v_tracking2_row']= mssql_query("select top 10 * from tb1", $this->Connect); Php2: While ($row= $_SESSION['v_tracking2_row']) { echo '<td>'.$row['S1'].'</td>'.$row['S2'].'</td>' } - и вот здесь он у меня прост озацикливается (хотя всего десять строк) а foreach($_SESSION['v_tracking2_row'] as $m) - выдает только одно строчку Паодскажите, как рюхнуть эту тему? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 13:57:19 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
Dmitry.Dennisov, документация While ($row= $_SESSION['v_tracking2_row']) => пока(строка=истина) вот поэтому и зацикливается, что всегда истина )). В первом файле надо не просто handle ресурса загонять в сессию, а именно результаты выборки mssql_fetch_array, или какая там функция в mssql для этого. Вообщем ссылка всё объяснит в примерах :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 14:39:02 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
Ой простите описался я так и делую $_SESSION['v_tracking2_row'] = mssql_fetch_assoc($Selectall); я вот к этому приравнию ...а результат зацикливание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 14:54:33 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
Dmitry.DennisovОй простите описался я так и делую $_SESSION['v_tracking2_row'] = mssql_fetch_assoc($Selectall); я вот к этому приравнию ...а результат зацикливание Если в кратце, есть конструкция Код: php 1. работает она так: функция выбирает строку результата, передаёт её в $row и проверяет на false. Таким образом, когда очередная строка не выберется (результаты закончились) - цикл закончится. Твой цикл никогда не заканчивается, так как $_SESSION['v_tracking2_row'] в данном случае никогда не эквивалентна false. один из варинтов - это while на foreach переписать, или же сделать так: Код: php 1. P.S. кстати второй вариант полностью с имитирует mssql_fetch_assoc (переведёт курсор в конец массива) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 15:28:46 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
А можно еще подсказочку небольшую , я что-то не догоняю В классе у меня написанно так function db_get_result() { $this->Row = mssql_fetch_assoc($this->Selectall); return $this->Row; } Если я делаю while так, то все нормально while($row = $db1->db_get_result()) а если так ...то ничего не получается $row_new = $db1->db_get_result() while($row = $row_new) Вопрос как мне db_get_result() перенести в переменную (в сессию), чтобы передать на другой лист? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 16:30:42 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
как с обычным массивом. $_SESSION['aaa'] = тут что надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 16:33:40 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
ScareCrowкак с обычным массивом. $_SESSION['aaa'] = тут что надо Так просто не работает ....честно говоря проблема навреное в том что у меня полное непонимание работы этой штучки While($row= mssql_fetch_assoc($Selectall)) Какой массив получается в $row вообще не понятно т.к. $row[1][3]; по идеи должен вывести результат в проеделнной ячейки, а он не выводит ничего foreach(mssql_fetch_assoc($Selectall) as $row) почему то тоже не работает хотя должен повторять результат while + While($row= mssql_fetch_assoc($Selectall)) { $row['S1'] - непонятно как он меняет номер строки ...где это все указано? } Сори надеюсь несильно угрузил..... сейчас пытаюсь осилить тему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 17:18:19 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
Dmitry.Dennisov, Что делает функция mssql_fetch_assoc? Она при каждом вызове возращает следующую запись выборки из базы. Т.е. к примеру если запрос вернул две строки idvalue1hi2world То при первом запуске mssql_fetch_assoc вернет массив array('id' => 1, 'value' => 'hi), во второй раз вернет array('id' => 2, 'value' => 'world') а в третий и последующие разы вернет false так как все что мог он уже вернул. mssql_fetch_assoc - это как продавец. Вы сделали у него заказ на 100 товаров (яблоко, груша, дыня итд), и вы берете по одной штуки у него заказаное: вначале бюерете у него яблоко, потом грушу, потом дыню итд. А когда он выполнит весь свой заказ - отдаст вам все, он тут и начнет говарить - усе, ниче нету (false). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2012, 17:42:55 |
|
||
|
[PHP] сессия - массив из БД
|
|||
|---|---|---|---|
|
#18+
Всем огромное, спасибо! В конечном счете сделал так....может и можно как то лучше.... while($n = $dg->db_get_result()) { $_SESSION['v_tracking2_row'][$i][0] = $n[0]; $_SESSION['v_tracking2_row'][$i][1] = $n[1]; echo $_SESSION['v_tracking2_row'][$i][0].'<br>'; $i++; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 11:59:16 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38011483&tid=1464517]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 480ms |

| 0 / 0 |
