Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Сортируем строку... (http://forum.oszone.net/showthread.php?t=104555)

stone_wings 07-04-2008 20:30 776918

Сортируем строку...
 
Есть таблица.. Вид :
(кусок из таблицы)

id-|n1|n2-|n3|n4| ....
---------------------------
11|0--|0--|7--|2--| ...
---------------------------
21|2--|5--|0--|0--| ...
---------------------------
31|1--|0--|3--|0--| ...
---------------------------

Ну как то так... Вот.. Есть цыкл, в котором нужно помимо вывода переменных, выбрать из строки переменные больше нуля, и присвоить их. (Всего три переменных, к примеру $s1, $s2, $s3 (остальные же будут 100% нулями, т.е. в этих трёх переменых и будут те три значения что не нули). Получается что со строки нужно только те значения что не равны нулю.. И так что..
(Смотрим по первой строке):
$s1 = 0; (не зависимо какой n1 или n2)
$s2 = 7;
$s3 = 2;

(По третьей):
$s1 = 1;
$s2 = 3;
$s3 = 0; (не зависимо какой - n2 или n4)

(Подразумевается что выборка будет в цылке while..) И ещё, в добавок.. Если же переменных не равных нулю, меньше чем три, то добавляться должна ещё одна (любая), с нулевым значением. Теперь вопрос.. Как сделать эту выборку? Именно в while.... (Есил это вообще имеет значения.)

vadimiron 07-04-2008 22:43 777008

Выборку то никак и не сделаешь - надо программно выискивать ненулевые значения. В PHP есть удобные функции для работы с массивом, так что понадобится всего 1-2 строчки кода

stone_wings 07-04-2008 22:55 777018

Ок.. Тогда подругому. Как лучше (и можно ли) чрезе LIMIT это всё вывести. Хотя там опять же нужно отсортировать.. Эх... Какие есть идеи?

ЗЫ: На счёт пхп, в какую сторону рыть? Команда....

Busla 08-04-2008 09:38 777217

Я бы рыл сторону другого представления данных.
Например, использовал бы таблицу из трёх столбцов: id, n, значение

stone_wings 08-04-2008 21:51 777722

Цитата:

Цитата Busla
использовал бы таблицу из трёх столбцов: id, n, значение »

Это, как я понимаю, при добавлении данных, добавлялась бы не строка, а столбец? Не.. Я считаю это не логичный ход был бы...

Busla 09-04-2008 12:00 778062

как-то вы очень странно понимаете - было бы даже интересно посмотреть, как это может выглядеть :)

stone_wings 09-04-2008 19:16 778372

Люди с phpclub быстрей меня поняли. :)
Кому интересно то всё было довольно таки просто :
Код:

выбрали строку в массив
$array = array( n1, n2,n3,n4);
отсортировали по убыванию
$s1 = $array[0];
$s2 = $array[1];
$s3 = $array[2];

by HraKK

2Busla Нет, это вы не знаете того что в таблице, я привёл только часть её, а там дальше и переменные типа текст. И получается в точности как вы предлогаете.

Добавил: Моё имхо, в общем мы не поняли друг друга.

vadimiron 09-04-2008 19:53 778394

stone_wings,
В качестве оптимизации лучше просто пройтись по массиву и найти ненулевые значения, а не сортировать


Время: 14:27.

Время: 14:27.
© OSzone.net 2001-