Сообщение от laimas
|
Очень трудно читать когда все кучей одним абзацем. Трудно вникать и отделить главное от второстепенного. Поэтому напишу примеры.
Если вторая таблица связана с первой по идентификатору, тогда поучить записи из второй таблицы связанной с первой, это
SELECT * FROM sortable
LEFT JOIN sortable2
USING(id)
ORDER BY ord
Сортировать запрос по полю rank второй таблицы нет смысла, так как первичная сортировка производится по полю ord первичной таблицы, с которым из второй таблицы будет связана только одна запись.
Насколько я понял таблица sortable2 вообще лишняя, ее записи должны быть помещены в таблицу sortable. Но тут возникают два вопроса: 1) что такое rank_name, 2) что такое rank.
Если одно и тоже значение rank_name могут иметь многие несколько субъектов, то это список. Если это список который может динамически добавляться, то выгоднее его описывать в связанной таблице. Если же это уникальные значения у каждого субъекта, то оперировать списком нельзя, если только не вывести такой ради информации.
Если rank_name это список, но фиксированный, то есть кроме этих трех значений более нет и не предвидится, то такие данные удобно хранить в поле типа ENUM. Это текстовое представление данных, но во внутреннем представлении, это числа, которыми и оперирует SQL.
То же самое относится и к полю rank.
Если rank_name и rank это все таки списки, и связанные, то для субъекта изменение значения из первого должно автоматически менять и значение и из второго.
На эти вопросы вы так и не даете ответов, а от этого многое зависит. Постановка же вопроса "мне нужно только сделать чтобы анкета перемещалась на кнопку в другую категорию и все" вообще не понятна: что такое категория, что значит переместить анкету в другую категорию - сменить значения rank? Тогда почему rank_name не является в вашем выводе списком (если это действительно список) и не изменяется, эти значения не связаны?
Не пишите о drag&drop и прочем не имеющем отношения к вопросу, дайте лучше ответы на вопросы, и конкретно что есть что.
|
Да я поняла.. Отвечаю на все вопросы начав все заного.. С исправлениями которыми вы советовали.. И так..
Дамп таблицы:
CREATE TABLE IF NOT EXISTS `sortable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nick` varchar(155) COLLATE utf8_unicode_ci NOT NULL,
`rank_name` varchar(155) COLLATE utf8_unicode_ci NOT NULL,
`rank` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16 ;
INSERT INTO `sortable` (`id`, `nick`, `rank_name`, `rank`) VALUES
(1, 'Федя', 'Грузчик', 'one'),
(2, 'Вася', 'Водитель', 'two'),
(3, 'Гена', 'Оператор', 'three');
Дамп переписала русские слова в ручную потомучто выдало там где ру Гена и все такое хотя кодировка UTF-8
Есть фильтр:
<form id="filter">
<fieldset class="group">
<label class="btn btn-default"><input type="radio" name="filter" value="one">Грузчик</label>
<label class="btn btn-default"><input type="radio" name="filter" value="two">Водитель</label>
<label class="btn btn-default"><input type="radio" name="filter" value="three">Оператор</label>
</fieldset>
</form>
Есть php скрипт который содержится в index.php
<?php
include( 'db_connection.php' );
$select = "SELECT * FROM sortable ORDER BY id ASC"; // select every element in the table in order by order column
//echo mysql_error();
$perform = mysql_query( $select ); //perform selection query
//echo mysql_error();
while( $array = @mysql_fetch_assoc( $perform ) ){ //download every row into array
$id = $array['id'];
$rank = $array['rank'];
$nick = $array['nick'];
$rank_name = $array['rank_name'];
?>
<?php require "body.php" ?>
<?php
}
?>
Тут поменяла ток assoc все работает
Есть часть кода в body.php
<figure class="portfolio-item" data-groups='["<?php echo $rank ?>"]'>
<figcaption>
<div class="col-md-4" id='item-<?php echo $id ?>'>
<strong class="st-member-name"><?php echo $nick ?></strong>
<p class="st-member-pos"><?php echo $rank_name ?></p>
Чуть ниже по коду..
<select>
<option value="three">Грузчик</option>
<option value="two">Водитель</option>
<option value="three">Оператор</option>
</select>
Нужно - при изменении <option> меняется -
<filter data-groups='["СЮДА ВЫВОДИТСЯ ТО ЧТО В БЫЛО ВЫБРАНО В <option value="*"> "]'>
Пример: Выбираю id=1 nick = Вася rank_name = Грузчик rank=one.. Выбираю в <option> Водитель(rank_name) и ему соответствует rank = two и само "TWO" должно echo вписать и получится <filter data-groups='["two"]'> и оно сработает и вася уже стал грузчик.. Вот что я хочу.. Ответила на все вопросы))
Вот так