Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > помогите разобраться в поиске


Автор: supervladislav 16.5.2008, 01:33
Драсте уважаемые!!!У меня есть сайт и там есть поиск и там есть от такая строка ))))где раздные типы помещений которые выбирает пользователь добовляются в массив ttype3 он фореачится и переменная добовляется в sql ,мне надо чтоб  эти данные с раздными словами сравнивались со столбиками и если в столбике есть одно из 1 или 2 или 3 словосочетаний то эти данные бы выбирались запросом select ,подскажите как лучше это организовать?   



Код

if ($allttype3) $t_ttype3=""; elseif ($allttype2) $t_ttype3=""; else{foreach(@$ttype3 as $value3){$t_ttype3.="AND ttype3='$value3'";}}


и ещё подскажите можно ли в запросе типа select where  использовать  %

Автор: Fortop 16.5.2008, 12:46
Код в Индии писать учили?

Добавлено через 1 минуту и 21 секунду
Код

if ($allttype3) {
    $t_ttype3="";
} elseif ($allttype2) {
    $t_ttype3=""; 
} elseif (is_array($ttype3)) {
    foreach($ttype3 as $value3) {
        $t_ttype3.="AND ttype3='$value3'";
    }
}

Автор: Fortop 16.5.2008, 12:46
Цитата(supervladislav @  16.5.2008,  01:33 Найти цитируемый пост)
и ещё подскажите можно ли в запросе типа select where  использовать  %

запросто

Код

WHERE FIELDNAME LIKE 'vvv%'

Автор: supervladislav 18.5.2008, 22:45
Цитата(Fortop @ 16.5.2008,  12:46)
Код в Индии писать учили?

Добавлено @ 12:48
Код

if ($allttype3) {
    $t_ttype3="";
} elseif ($allttype2) {
    $t_ttype3=""; 
} elseif (is_array($ttype3)) {
    foreach($ttype3 as $value3) {
        $t_ttype3.="AND ttype3='$value3'";
    }
}

неработает твоя конструкция ))))если вывести значение переменной $t_ttype3 выскакивает вот енто AND ttype3='Array'   ,насколько понимаю надо чтоб  строка с  sql кодом    была впихнута в цикл  
но в этом случае выскакивает ошибка mysql.Можно ли обойтись какимнить другим способом??? 

Автор: Fortop 18.5.2008, 22:54
Цитата(supervladislav @  18.5.2008,  22:45 Найти цитируемый пост)
неработает твоя конструкция ))))если вывести значение переменной $t_ttype3 выскакивает вот енто AND ttype3='Array'   ,насколько понимаю надо 

Это не моя конструкция, это твоя, только отформатированная  smile

Цитата(supervladislav @  18.5.2008,  22:45 Найти цитируемый пост)
если вывести значение переменной $t_ttype3 выскакивает вот енто AND ttype3='Array'   ,насколько понимаю надо чтоб  строка с  sql кодом    была впихнута в цикл  

Насколько Я понимаю, у тебя $ttype не просто массив, а многомерный массив
в таком случае тебе и для каждого $value3 нужен цикл foreach

Код

    foreach($ttype3 as $value3) {
        foreach ($value3 as $somevalue) {
            $t_ttype3.="AND ttype3='$value3'";
        }
    }


А вообще, вместо гадания на кофейной гуще, недурно изначально было привести структуру данных в массиве $ttype3

Автор: supervladislav 18.5.2008, 23:11
структура массива там вот такая 
Array ( [1] => Array ( [0] => 1 комнатная квартира [1] => 2 комнатная квартира [2] => 3 комнатная квартира [3] => 4-х и более к кв. ) )
мог бы ты привести полный вариант кода ,а с какого там многомерный массив

Автор: Fortop 18.5.2008, 23:37
Цитата(supervladislav @  18.5.2008,  23:11 Найти цитируемый пост)
а с какого там многомерный массив 

А это у тебя надо спросить smile
Вот
Цитата(supervladislav @  18.5.2008,  23:11 Найти цитируемый пост)
Array ( [1] => Array ( [0]


В общем, пробуй модификацию, что я дал.

Автор: supervladislav 19.5.2008, 00:20
во блин переменная то не та
Код

  foreach($ttype3 as $value3) {
        foreach ($value3 as $somevalue) {
            $t_ttype3.="AND ttype3='$value3'";
        }
    }

её надо было вставить $somevalue вместо $value3
вобще геморой с многомерными массивами работать  
 да  надо бы всё это выражение поместить в скобки ,и чтоб первый or не выводился

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)