| Есть таблица с идентификаторами рецептов (rec_id) и идентификаторами ингредиентов (ings_id).
Есть запрос:
$rec_id1 = mysql_query ("SELECT distinct rec_id FROM rec_ings WHERE ings_id IN (2,4,6,8)",$db);
$rec_id = mysql_fetch_array ($rec_id1);
Теперь, каким-то чудесным образом мне нужно отфильтровать $rec_id['rec_id'].
Примерно по такой системе:
Мне нужно взять каждый из возвращенных идентификаторов, которые попали в $rec_id['rec_id'] (т.е. 1,2,3,4) и проверить каждый этот идентификатор с значениям поля ings_id['ings_id'], при каждом значении $rec_id['rec_id'].
Т.е. примерно так:
$ings_id1 = mysql_query ("SELECT distinct ings_id FROM rec_ings WHERE rec_id IN ($rec_id['rec_id'])",$db);
$ings_id = mysql_fetch_array ($ings_id1);
do
{
if ( $ings_id['ings_id'] == "Любым значениям, кроме 2,4,6,8" )
{
"Удалить тот элемент из $rec_id['rec_id']"
}
}
while ( $ings_id = mysql_fetch_array ($ings_id1) );
Т.е. сначала должно проверяться $rec_id['ings_id'] == 1. При котором $ings_id['ings_id'] == 2,4,6,8. Проверяется, равны ли эти числа (2,4,6,8) числам, которые находятся в 1-м запросе (2,4,6,8 == 2,4,6,8). Да, равно, идем дальше.
Потом проверяется 2-е значение $rec_id['ings_id']. $rec_id['ings_id'] == 2. При котором $ings_id['ings_id'] == 2,4,6,10. Проверяется, равны ли числа (2,4,6,10), числам "2,4,6,8". Нет. Т.к. у нас 10 !== 8. Удаляем из массива $rec_id['ings_id'] число 2.
(и еще: (8,4,2,6 == 2,8,6,4), а (10,4,2,6 !== 2,8,6,4) и (8,5,2,6 == 2,8,6,4) )
В итоге, смотря на таблицу, можно увидеть, что должны остаться только $rec_id['rec_id'] == 1,4.
Либо эту же фильтрацию можно как-то сделать в 1-м запросе, без последующих циклов.
Заранее ОГРОМНЕЙШЕЕ спасибо! | |