Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не большая замопрочка с циклами.
 
 автор: Aidaho   (01.12.2008 в 12:21)   письмо автору
 
 

Добрый день.

Помогите разобраться. Появилась не большая проблемка с циклами.

<?php
session_start
();
    
$my->sql_connect();
    
$my->sql_query "select id_group from $tbl_grmem where id_user='$_SESSION[id]'";
    
$my->sql_execute();
    echo 
$my->sql_err;
    if(!
mysql_num_rows($my->sql_res)) {
        include(
'../inc/top.php');
        echo 
"<div id=content>
        <b>Вы не являетесь участником какой-либо группы.</b>
        </div>"
;
        include(
'../inc/bottom.html');
        } else {


            while(
$gr mysql_fetch_array($my->sql_res)) {
                
$my->sql_query1 "select * from $tbl_group where Id='$gr[id_group]'";
                
$my->sql_execute1();

                while(
$see mysql_fetch_array($my->sql_res1)) {
                    include(
'../inc/top.php');
                    echo 
"<div id=content>";
                    echo 
"<table>
                    <tr>
                    <td><a href=http://
$_SERVER[HTTP_HOST]/site/group/gradd.php?group=$see[Id] title=$see[name]>$see[name]</a></td>
                    </tr>
                    <tr>
                    <td>
$see[descrip]</td>
                    </tr>
                    <tr>
                    <td><a href=#>Выйти из группы</a></td>
                    </tr>
                    </table>"
;
                    echo 
"</div>";
                    include(
'../inc/bottom.html');
                }
            }
        }
?>

Проблема в том, что в массиве $gr есть только первый id, когда я делаю так:

<?php
    
while($gr mysql_fetch_array($my->sql_res)) {
                
$my->sql_query1 "select * from $tbl_group where Id='$gr[id_group]'";
                
$my->sql_execute1();
                                
print_r($gr);
      }
?>

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

  Ответить  
 
 автор: sim5   (01.12.2008 в 12:47)   письмо автору
 
   для: Aidaho   (01.12.2008 в 12:21)
 

Ну а чего вы хотитет, если вы ресурс, с которым хотите работать, получаете в цикле? Получите сперва ресурс, а потом работайте с ним.

  Ответить  
 
 автор: Aidaho   (01.12.2008 в 12:56)   письмо автору
 
   для: sim5   (01.12.2008 в 12:47)
 

Не совсем Вас понял, можно по подробней?

  Ответить  
 
 автор: sim5   (01.12.2008 в 13:34)   письмо автору
 
   для: Aidaho   (01.12.2008 в 12:56)
 

В первом случае, вы получили ресур $my, и получаете строки из него в цикле. Во втором случае - нет слов, подумайте сами...
Кстати, если вы хотите работать с ассоциативным массивом, то получайте строки из ресурса как mysql_fetch_assoc(), если с индексным массивом, то как mysql_fetch_row, а об mysql_fetch_array() забудьте.

  Ответить  
 
 автор: Aidaho   (01.12.2008 в 13:40)   письмо автору
 
   для: sim5   (01.12.2008 в 13:34)
 

Как не странно, но проблема не в этом. $my это объект класса, если честно не понял причем он тут.

После того, как перенес include(), все заработало. Не понял в чем проблема была, но работает. Раньше я таким же образом выдергивал значения и не раз.

За совет спасибо. :)

  Ответить  
 
 автор: sim5   (01.12.2008 в 13:45)   письмо автору
 
   для: Aidaho   (01.12.2008 в 13:40)
 

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

  Ответить  
 
 автор: Aidaho   (01.12.2008 в 13:55)   письмо автору
 
   для: sim5   (01.12.2008 в 13:45)
 

Кстати. А почему вы советуете использовать вместо mysql_fetch_array - mysql_fetch_row и mysql_fetch_assoc ? Думал они работают быстрее, но судя по описанию это не так.

  Ответить  
 
 автор: sim5   (01.12.2008 в 15:15)   письмо автору
 
   для: Aidaho   (01.12.2008 в 13:55)
 

А зачем вам получать лишние данные, которые вам совсем не нужны? Если это одна строка, ничего страшного, а если это приличный объем данных, или рекурсивный запрос, то как вы думаете, это разумно?

  Ответить  
 
 автор: Aidaho   (02.12.2008 в 06:04)   письмо автору
 
   для: sim5   (01.12.2008 в 15:15)
 

Логично. Буду делать именно так. :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования