Есть две таблицы, пример: 1) Таблица1 +--------------------------+ | ID | Категория | +--------------------------+ | 1 | Категория 1 | | 2 | Категория 2 | | 3 | Категория 3 | 2) Таблица2 +---------------------------+ | ID | IDcat | Товар | +---------------------------+ | 1 | 3 | Товар 1 | | 2 | 2 | Товар 2 | | 3 | 3 | Товар 3 | | 4 | 1 | Товар 1 | | 5 | 1 | Товар 2 | | 6 | 3 | Товар 5 | Мне необходимо построить таблицу, содержащую всего один столбец так, чтобы заголовком являлась Категория, а содержимым - Товар. Выбор осуществлялся бы по ID категории. Т.е. [sql]$query = "select * from Таблица 1 t1 , Таблица 2 t2 where t1.ID = t2.IDcat and t1.ID=3 order by Товар"[/sql] и должно получиться так: +-------------------+ | Категория 3 | +-------------------+ | Товар 1 | | Товар 3 | | Товар 5 | но у меня не получается, т.е. таблица строится, но теряется одна запись, самая первая, в данном примере, в моем случае, было бы две записи, начиная со второй (Товар 3). Помогите разобраться )
Совсем забыл... [sql] <?php // Устанавливаем соединение с базой данных include "../include/config.php"; // Создаем таблицу echo "<table border=0>"; // Делаем запрос $r=mysql_query("select * from Таблица 1 t1, Таблица 2 t2 where t1.ID = t2.IDcat and t1.ID=5 order by t2.Товар"); if($r) { $f = mysql_fetch_array($r); echo "<tr>"; echo "<th><b><u> $f[Категория]</u></b></th>"; echo "</tr>"; while($n = mysql_fetch_array($r)) { echo "<tr>"; echo "<td>$n[Товар]</td>"; echo "</tr>"; } } echo "</table>"; ?>[/sql]
Ты два раза делаешь mysql_fetch_array - вот у тебя и теряется первая запись. Переделай так: PHP: <? if($r) { $f = mysql_fetch_array($r); echo "<tr>"; echo "<th><b><u> $f[Категория]</u></b></th>"; echo "</tr>"; do { echo "<tr>"; echo "<td>$n[Товар]</td>"; echo "</tr>"; } while($n = mysql_fetch_array($r)) } echo "</table>"; ?>
Вместо кода RomanBush'a можешь просто в своём коде на 16-ой строке поставить: PHP: mysql_data_seek($r, 0);
да, функция mysql_data_seek прокатила, но RomanBush говорит, что я в своем коде делаю дважды mysql_fetch_array, что, по-видимому, не есть хорошо....но зато работает теперь )) спасибо RomanBush, спасибо Johnatan! =)
Почитай лучше мануал по mysql_fetch_array и mysql_data_seek, иначе ты даже не поймёшь, в чём ошибка и в следующий раз сделаешь то же самое. Возможно после прочтения мануала, ты даже оптимизируешь свой код и у тебя не будет двух mysql_fetch_array.