|
|
|
| <?php
$i=1;
include "qw.php";
$forum = mysql_query("select * from forums");
$mthemes = mysql_query("select * from mthemes");
If(!$forum) exit (mysql_error());
If(!$mthemes) exit (mysql_error());
echo "<table>";
while($forums = mysql_fetch_array($forum))
{
echo "<tr>
<td>".$forums['name']."</td>
</tr>";
while($a = mysql_fetch_array($mthemes))
{
if($a[id_forum]==$i)
echo "<tr>
<td>".$a['name']."</td>
</tr>";
}
$i=$i+1;
}
echo "</table>";
?>
у меня есть две таблицы в одной базе, с которой соединяется qw.php(проверено: соединяется(по отдельности вытягивал все)
вот что в них есть(я просто тестирую так что не обращайте внимания на значения):
1-я таблица forums:
Id_forum name .......................
1 Ресурсы сервера
2 Спиртные напитки
2-я таблица mthemes
Id_mtheme name Id_forum..............
1 чат 1
2 фтп 1
3 пиво 2
вот что выводит скрипт:
Ресурсы сервера
чат
ФТП
Спиртные напитки
а пиво почему-то не вывел.... если $i присвоить изначально значение 2 то получается:
Ресурсы сервера
Пиво
Спиртные напитки
так и должно быть,
а вот чтобы все как надо вывести: не хочет, помогите начинающему плз!!! | |
|
|
|
|
|
|
|
для: XoTTa6bI4
(03.11.2006 в 23:39)
| | В вашем случае обрабатывать запрос следует в цикле
<?php
include "qw.php";
$forum = mysql_query("select * from forums");
if(!$forum) exit (mysql_error());
if(mysql_num_rows($forum))
{
echo "<table>";
while($forums = mysql_fetch_array($forum))
{
echo "<tr>
<td>".$forums['name']."</td>
</tr>";
$mthemes = mysql_query("select * from mthemes WHERE id_forum = ".$forums['id_forum']);
if(!$mthemes) exit (mysql_error());
while($a = mysql_fetch_array($mthemes))
{
echo "<tr>
<td>".$a['name']."</td>
</tr>";
}
}
echo "</table>";
}
?>
|
Дело в том, что пройдя по результирующей таблице один раз, внутренний курсор устанавливается на последнюю запись и проход второй раз сразу возвращает конец результирующей таблицы. | |
|
|
|
|
|
|
|
для: cheops
(04.11.2006 в 12:08)
| | Большое спасибо!!!а то я очень долго ломал голову, почему не работает... | |
|
|
|