в базе есть несколько таблиц, например: a, b, c, d и e. в таблице "a" имеется поле name со значением 1 и поле surname со значением 6 в таблице "b" имеется поле name со значением 2 и поле surname со значением 7 в таблице "c" имеется поле name со значением 3 и поле surname со значением 8 в таблице "d" имеется поле name со значением 1 и поле surname со значением 9 в таблице "e" имеется поле name со значением 5 и поле surname со значением 10 как сделать так, чтобы php скрипт возвращал повторяющиеся значения поля name из всех таблиц, с соответсвующими значениями поля surname? пример результата: (названия полей возвращать необязательно, они прописаны в результате вручную) name 1;2;3;4 surname 6,9;7;8;10; поле name из таблицы "d" отсутствует в результате, т.к. его значение равно значению поля name в таблице "a". доп. задание: поле surname повторяющихся значений иметь не может, поэтому, необходимо, чтобы значения поля surname возвращались в возврастающем порядке в той-же строке, что и значение повторяющегося поля name. (поле surname имеет формат TIME) пример: 1 6,9 2 7 3 8 5 10 если что-то из вопроса неясно - спрашивайте. спасибо.
surname это только название поля, к содержимому отношения не имеет. содержимое в формате time. на всякий случай: содержимое полей name в формате longtext
могу переделать таблицу для удобства, если необходимо. Суть вопроса останется прежней. всего значений поля name или surname может быть максимум 10 (табличка небольшая)
Скажи для чего это. Сомневаюсь, что твои фантазии на тему и реальность где-то сходятся… допустим, у нас [sql]CREATE TABLE IF NOT EXISTS `test_table` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(20) NOT NULL, `surname` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT AUTO_INCREMENT=1 ; INSERT INTO `test_table` (`id`, `name`, `surname`) VALUES (1, '1', 6), (2, '2', 7), (3, '3', 8), (4, '1', 9), (5, '5', 10);[/sql] выбрать запросом данные так, чтобы вернуло не получится — количество результатов в разных столбцах не совпадает. => выбираем данные [sql]SELECT * FROM test_table ORDER BY `surname` ASC[/sql] потом в php PHP: <?php $rows = array(); while ($row = mysql_fetch_assoc($res)) { $rows[$row['name']][] = $row['surname']; } ?> и в $rows имеем Код (Text): Array ( [1] => Array ( [0] => 6 [1] => 9 ) [2] => Array ( [0] => 7 ) [3] => Array ( [0] => 8 ) [5] => Array ( [0] => 10 ) ) где ключи 1,2,3,5 — значения name, а вложенные массивы сожержат заначения из surname
я Вам на почту отправил полное описание проблемы. Посмотрите, пожалуйста. прошу прощения за введение в заблуждение..
на почту просто так не интересно, но раз уж так шифруемся, то общее описание проблемы: есть набор уникальных элементов и их свойства (в частности время). Одному элементу может принадлежать несколько свойств. Одно свойство может принадлежать разным элементам. Задача: вывести элемент и свойства. Решение: Простая связь многие ко многим. 3 таблицы: 1. Элементы (id элемента, имя элемента) 2. Свойства (id свойства, имя свойства) 3. Связь (id элемента, id свойства) ну, и выбрать элементы и свойства пары которых указаны в «Связь»
готовые решения в таком объёме уже не интересно. Можете из первого примера взять массив и склеить, или сделать связь много ко многим, что есть правильней. В любом случае, вы правы, что-то делать точно надо.
есть вот такой массив: PHP: $query1 = ("SELECT*FROM shedule WHERE name='$fn'") or die(mysql_error()); $result1=mysql_query($query1); while($r1=mysql_fetch_array($result1)) { $rtime=$r1[time]; как $rtime превратить в строку с текстом, в котором указаны значения всех элементов массива?