powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] сессия - массив из БД
9 сообщений из 9, страница 1 из 1
[PHP] сессия - массив из БД
    #38011360
Dmitry.Dennisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, всем привет!

Подскажите, плиз у меня никак не получается:
В сессию хочу загрузить результат выгрузки из БД, а потом вывести как таблицу на другом листе, делаю так:

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) - выдает только одно строчку

Паодскажите, как рюхнуть эту тему?

Заранее спасибо!
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011451
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.Dennisov,

документация

While ($row= $_SESSION['v_tracking2_row']) => пока(строка=истина)

вот поэтому и зацикливается, что всегда истина )). В первом файле надо не просто handle ресурса загонять в сессию, а именно результаты выборки mssql_fetch_array, или какая там функция в mssql для этого.

Вообщем ссылка всё объяснит в примерах :)
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011483
Dmitry.Dennisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой простите описался
я так и делую

$_SESSION['v_tracking2_row'] = mssql_fetch_assoc($Selectall); я вот к этому приравнию ...а результат зацикливание
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011572
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.DennisovОй простите описался
я так и делую

$_SESSION['v_tracking2_row'] = mssql_fetch_assoc($Selectall); я вот к этому приравнию ...а результат зацикливание

Если в кратце, есть конструкция
Код: php
1.
While ($row= mssql_fetch_assoc($Selectall))


работает она так: функция выбирает строку результата, передаёт её в $row и проверяет на false. Таким образом, когда очередная строка не выберется (результаты закончились) - цикл закончится.

Твой цикл никогда не заканчивается, так как $_SESSION['v_tracking2_row'] в данном случае никогда не эквивалентна false.

один из варинтов - это while на foreach переписать, или же сделать так:
Код: php
1.
While ($row= next($_SESSION['v_tracking2_row']))



P.S. кстати второй вариант полностью с имитирует mssql_fetch_assoc (переведёт курсор в конец массива)
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011735
Dmitry.Dennisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно еще подсказочку небольшую , я что-то не догоняю

В классе у меня написанно так
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() перенести в переменную (в сессию), чтобы передать на другой лист?
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011743
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как с обычным массивом.
$_SESSION['aaa'] = тут что надо
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011834
Dmitry.Dennisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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'] - непонятно как он меняет номер строки ...где это все указано?
}

Сори надеюсь несильно угрузил..... сейчас пытаюсь осилить тему
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38011883
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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).
...
Рейтинг: 0 / 0
[PHP] сессия - массив из БД
    #38012673
Dmitry.Dennisov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем огромное, спасибо!

В конечном счете сделал так....может и можно как то лучше....

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++;

}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] сессия - массив из БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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