|
|
|
| Добрый день.
Помогите разобраться. Появилась не большая проблемка с циклами.
<?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);
}
?>
|
то массив заполняется полностью. Делал аналогичные функции, все работало, тут почему то не хочет. Что я пропустил? Подскажите пожалуйста. | |
|
|
|
|
|
|
|
для: Aidaho
(01.12.2008 в 12:21)
| | Ну а чего вы хотитет, если вы ресурс, с которым хотите работать, получаете в цикле? Получите сперва ресурс, а потом работайте с ним. | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 12:47)
| | Не совсем Вас понял, можно по подробней? | |
|
|
|
|
|
|
|
для: Aidaho
(01.12.2008 в 12:56)
| | В первом случае, вы получили ресур $my, и получаете строки из него в цикле. Во втором случае - нет слов, подумайте сами...
Кстати, если вы хотите работать с ассоциативным массивом, то получайте строки из ресурса как mysql_fetch_assoc(), если с индексным массивом, то как mysql_fetch_row, а об mysql_fetch_array() забудьте. | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 13:34)
| | Как не странно, но проблема не в этом. $my это объект класса, если честно не понял причем он тут.
После того, как перенес include(), все заработало. Не понял в чем проблема была, но работает. Раньше я таким же образом выдергивал значения и не раз.
За совет спасибо. :) | |
|
|
|
|
|
|
|
для: Aidaho
(01.12.2008 в 13:40)
| | Так вы просто кусок из того же привели, то есть, вы раскладываете ранее полученный ресурс, получая новый в массиве. Я же понял это иначе. ) | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 13:45)
| | Кстати. А почему вы советуете использовать вместо mysql_fetch_array - mysql_fetch_row и mysql_fetch_assoc ? Думал они работают быстрее, но судя по описанию это не так. | |
|
|
|
|
|
|
|
для: Aidaho
(01.12.2008 в 13:55)
| | А зачем вам получать лишние данные, которые вам совсем не нужны? Если это одна строка, ничего страшного, а если это приличный объем данных, или рекурсивный запрос, то как вы думаете, это разумно? | |
|
|
|
|
|
|
|
для: sim5
(01.12.2008 в 15:15)
| | Логично. Буду делать именно так. :) | |
|
|
|