|
|
|
| Здравствуйте, такая проблема на странице 2 цикла for, но работает только верхний(первый), а нижний не работает, если я закаментирую верхний нижний начинает работать, процес работы обоих циклов выборка данных из бд. в чем дело? | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:02)
| | Код в студию) | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:02)
| | Абстрактная модель кубической комнаты предполагает что все ее ребра равны, но они разные!
Примерно тоже самое...... Как вам что-то подсказать без кода? Код покажите? | |
|
|
|
|
|
|
|
для: Sfinks
(22.02.2012 в 11:06)
| |
for ($r=1; $r <= $strok; $r++)
{
$t = mysql_fetch_assoc($result1);
}echo $t['num_xy_blok'];
for ($y=1; $y <= $strok; $y++)
{
$i = mysql_fetch_assoc($result1);
}echo $i['num_xy'];
|
| |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:12)
| |
<?php
for ($r=1; $r <= $strok; $r++)
{
$t = mysql_fetch_assoc($result1);
}
echo $t['num_xy_blok'];
for ($y=1; $y <= $strok; $y++)
{
$i = mysql_fetch_assoc($result1);
}
echo $i['num_xy'];
?>
|
В первом цикле вы прошли все строки результата запроса, указатель остался после последнего. Во втором цикле просто нечего читать. | |
|
|
|
|
|
|
|
для: Киналь
(22.02.2012 в 11:18)
| | А этот указатель как-нить откатить нельзя? | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:20)
| | Можно. Но в целом задача действительно странная, что вы хотите получить в итоге? | |
|
|
|
|
|
|
|
для: Киналь
(22.02.2012 в 11:22)
| | А все спасибо тут нужна была mysql_free_result! все ок! я откатил первый запрос и оба цикла заработали | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:26)
| | а mysql_free_result() тут причем?
mysql_free_result() высвободит всю память, занимаемую результатом,
на который ссылается переданный дескриптор result.
mysql_free_result() нуждается в вызове только в том случае, если вы всерьёз обеспокоены тем,
сколько памяти используют ваши запросы к БД, возвращающие большое количество данных. Вся
память, используемая для хранения этих данных автоматически очистится в конце работы скрипта.
|
| |
|
|
|
|
|
|
|
для: Sfinks
(22.02.2012 в 11:45)
| | И все же пока я не откатил первый результат запроса второй цикл не заработал! | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:20)
| | Если вам нужно использовать данные из одного запроса к БД несколько раз, то занесите их в массив, а потом сколько угодно с ними работайте.
<?
$res = mysql_query( '...' );
$data = array();
while($row = mysql_fetch_array($res)) $data[] = $row;
| и вся выборка в массиве $data | |
|
|
|
|
|
|
|
для: Sfinks
(22.02.2012 в 11:26)
| | Оч интересно но я не понимаю как это?( | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:30)
| | mysql_query возвращает вам таблицу. Так?
Функциями mysql_fetch_assoc(), mysql_fetch_row(), mysql_fetch_array() вы перебираете эту таблицу построчно.
Циклом
while($row = mysql_fetch_array($res)) $data[] = $row;
| вся эта таблица загоняется в двумерный массив и к ней можно обращаться напрямую, по интексам:
$data[0] - первая строка таблицы
$data[3][6] - червертая строка, 7ой столбец
$data[3]['num_xy_blok'] - четвертая строка, столбец 'num_xy_blok'.
|
| |
|
|
|
|
|
|
|
для: Sfinks
(22.02.2012 в 11:52)
| | Спасиб! ценное инфо!! | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:12)
| | | |
|
|
|
|
|
|
|
для: Sfinks
(22.02.2012 в 11:20)
| | ??? вы нечего не написали. у вас пусто! | |
|
|
|
|
|
|
|
для: Dazzl
(22.02.2012 в 11:22)
| | Потому что я ошибся и стер ))) | |
|
|
|