Dimonicuss
28.08.2009 - 14:02
Суть проблемы заключается в том, чтобы вывести данные из таблицы не в строго определённом порядке.
Предположим, запрос возвращает 100 значений, а нужно отобразить строку text где значение строки id_group равняется 66, затем 12, 55 и 2. Может, возможно как-то привести это к виду $row->text[66]...
В таблице хранятся данные для мультиязычной страницы, запрос делает выборку данных по языку. Затем слова, тексты для данного языка нужно вывести в строго определённом месте, в любом порядке, по одному, с определённым значением id_group.
Таблица:
SQL |
CREATE TABLE `register` ( `id_reg` int(11) NOT NULL auto_increment, `text` varchar(255) NOT NULL, `id_lang` int(11) NOT NULL, `id_group` int(11) NOT NULL, PRIMARY KEY (`id_reg`) ) ENGINE=MyISAM AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 AUTO_INCREMENT=81 ; |
Запрос:
PHP |
$query = "SELECT * FROM $register_t WHERE id_lang = $lang"; $result = mysql_query($query) or die($error_query);
while($row=mysql_fetch_array($result)) { print "$row[1]"; } |
Помогите пожалуйста.
Спустя 2 часа, 8 минут, 9 секунд (28.08.2009 - 15:10) Nikitian написал(а):
SQL |
(select * from table where id_group=66) union all (select * from table where id_group=12) union all (select * from table where id_group=55) union all (select * from table where id_group=2)
|
Но это неправильно, хотя вам решать, я лишь решение предоставил
Спустя 5 минут, 44 секунды (28.08.2009 - 15:15) Michael написал(а):
Из справки php:
PHP |
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } $result = mysql_query('SELECT name FROM work.employee'); if (!$result) { die('Could not query:' . mysql_error()); } echo mysql_result($result, 2); // outputs third employee's name
mysql_close($link); |
Вроде как твой случай.
Индекс случайного перебора генерируй в цикле сколько надо раз
от 0 до mysql_num_rows($result)-1.
Спустя 25 минут, 36 секунд (28.08.2009 - 15:41) Dimonicuss написал(а):
Michael ты гений, всё работает как надо, именно то, что искал. Всё оказалось проще, чем думал...
Nikitan, спасибо. Да так можно сделать, но в моём случае при выводе большого количества данных такая схема будет громосткой. Спасибо за уделённое внимание проблеме!