Доброе время суток. сразу к сути проблемы: вот есть таблица: Код (Text): CREATE TABLE IF NOT EXISTS `img_tmp` ( `id_img` int(11) NOT NULL AUTO_INCREMENT, `id_desk` varchar(255) NOT NULL, `title` varchar(255) NOT NULL, `mini` varchar(255) NOT NULL, `publication` varchar(255) NOT NULL, PRIMARY KEY (`id_img`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; -- -- Дамп данных таблицы `img_tmp` -- INSERT INTO `img_tmp` (`id_img`, `id_desk`, `title`, `mini`, `publication`) VALUES (1, '1298366093_846029 ', '1298527448_146739.jpeg', 'mini_1298527448_146739.jpeg', '1298527448'), (2, '1298366093_846029 ', '1298528749_414195.jpeg', 'mini_1298528749_414195.jpeg', '1298528749'), (3, '1298366093_846029 ', '1298539388_216182.jpeg', 'mini_1298539388_216182.jpeg', '1298539388'); есть такой к ней запрос: Код (Text): $tmp_img = mysql_query("SELECT title FROM img_tmp WHERE id_desk = '$desk'"); $array_tmp_img = mysql_fetch_array($tmp_img); на Код (Text): print_r ($array_tmp_img); выходит следующий результат: Код (Text): Array ( [0] => 1298527448_146739.jpeg [title] => 1298527448_146739.jpeg ) а должен выходить результат с тремя записями. откуда этот 'title' мог попасть туда? помогите кто сможет пожалуйста. я уже не знаю в чем проблема. заранее при многом благодарен.
всё верно. на каждое поле mysql_fetch_XXXX() возвращает 2 результата - один с числовым ключем, второй с именованным. а что?
на каждое поле mysql_fetch_array() возвращает 2 результата mysql_fetch_assoc и mysql_fetch_row вернут по одному на поле. Вообще-то и mysql_fetch_array() может вернуть по одному результату на поле. =))
так ка бы это понятно. но как получить все записи относящиеся к 'id_desk'? я понимаю что возвращается 2 результата. но выводится то только 1. или я в чем то ошибаюсь? аналогичный запрос к другой таблице выводит все как нужно - все записи без дубля. тут какой глюк - мне так кажется. но в чем пока не могу разобраться.
[Выделено мной] Сравните: PHP: <?php $tmp_img = mysql_query("SELECT title FROM img_tmp WHERE id_desk = '$desk'"); $array_tmp_img = mysql_fetch_array($tmp_img); и PHP: <?php $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result)) { printf("ID: %s Name: %s", $row["id"], $row["name"]); }
сравнил. здесь идет вывод в вашем примере строк массива. а у меня просто распечатка массива. или я чего-то не понимаю?
Переформулирую второй пример: PHP: <?php $result = mysql_query("SELECT id, name FROM mytable"); $row = mysql_fetch_array($result) while ($row) { $fullTable[]=$row; $row = mysql_fetch_array($result) }