[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: модернизация логики!
ruzarh
Как можно модернизировать логику?

Суть проста есть запрос к БД и надо знать в какой табличке находится значение ноль чтобы ее использовать.


if($dataItem['slot1'] == 0 )
$slot = "`slot1` = '";
elseif ($dataItem['slot2'] == 0)
$slot = "`slot2` = '";
elseif ($dataItem['slot3'] == 0)
$slot = "`slot3` = '";
elseif ($dataItem['slot4'] == 0)
$slot = "`slot4` = '";
elseif ($dataItem['slot5'] == 0)
$slot = "`slot5` = '";
elseif ($dataItem['slot6'] == 0)
$slot = "`slot6` = '";
elseif ($dataItem['slot7'] == 0)
$slot = "`slot7` = '";
elseif ($dataItem['slot8'] == 0)
$slot = "`slot8` = '";
elseif ($dataItem['slot9'] == 0)
$slot = "`slot9` = '";
elseif ($dataItem['slot10'] == 0)
$slot = "`slot10` = '";
elseif($dataItem['slot11'] == 0 )
$slot = "`slot11` = '";
elseif ($dataItem['slot12'] == 0)
$slot = "`slot12` = '";
elseif ($dataItem['slot13'] == 0)
$slot = "`slot13` = '";
elseif ($dataItem['slot14'] == 0)
$slot = "`slot14` = '";
elseif ($dataItem['slot15'] == 0)
$slot = "`slot15` = '";




Спустя 12 минут, 4 секунды (30.10.2010 - 10:51) Lenarfate написал(а):
циклом

Спустя 9 минут, 7 секунд (30.10.2010 - 11:00) Paha4 написал(а):

for ($x=1;$x<15;$x++)
$dataItem['slot'. $x ] = rand(0,1);
print_r($dataItem);
echo FindZeroTable($dataItem);
function FindZeroTable ($dataItem = array())
{
foreach ($dataItem as $thisItem => $thisItemValue )
{
if ($dataItem[$thisItem] == 0)
return $thisItem;
//Можно так if ($thisItemValue == 0) return $thisItem;
}
}

Решение подойдет если у тебя только одномерный массив и в нем не хранятся другие данные кроме названия слотов и их флагов.

Спустя 6 часов, 28 минут, 26 секунд (30.10.2010 - 17:28) sergeiss написал(а):
Мне кажется, что ТС должен бы подробнее описать суть того, что он хочет. Возможно, что какое-то другое решение можно найти.

Спустя 1 час, 41 минута, 23 секунды (30.10.2010 - 19:10) ruzarh написал(а):
Суть мне надо определить какой из слотов пустой, и потом если есть слот пустой то добавить в него данные о изделии!

Спустя 19 минут, 10 секунд (30.10.2010 - 19:29) sergeiss написал(а):
ОК... $dataItem['slot1'] и все остальные - они откуда берутся? И фраза непонятна "и надо знать в какой табличке находится значение ноль чтобы ее использовать" - а сколько вообще табличек, какая логика связи между таблицами? Короче говоря, подробнее опиши. Иначе сложно модернизировать то, что не знаешь smile.gif

Спустя 40 минут, 38 секунд (30.10.2010 - 20:09) ruzarh написал(а):
это одна таблица, в ней много полей и которые мне нужны `slot1`,`slot2`...`slot15`всего их 15. в этих столбцах хранятся данные о изделиях. В одном слоте может хранится данные о одной вещи. Вот мне надо перебрать в каком слоте пусто и потом в него положить данные о изделии.

Спустя 16 минут, 23 секунды (30.10.2010 - 20:26) sergeiss написал(а):
Мне так что-то кажется, что лучше вообще логику построения таблиц изменить надо.

Судя по всему, одна строка в некоторой таблице (о которой и идет сейчас речь), является некоторой ключевой. И к ней привязаны какие-то изделия, количеством до 15 штук. У каждой строки, наверное, есть свой уникальный id?

Лучше данные об этих 15 изделиях выкладывать в другую таблицу, где будут эти данные, которые надо положить, будет номер изделия (от 1 до 15, если оно вообще требуется) и будет номер id, связывающий данную строку со строкой основной таблицы.

Так будет как-то логичнее и чётче. И место будет заниматься ровно столько, сколько нужно, не будет пустот. И всегда можно легко и просто подсчитать, сколько изделий относится к каждому основному объекту, можно получить их список и т.д. и т.п. - много чего упрощается.


_____________
Не портите мои нервные клетки, так как в них живут нервные тигры!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.