Ещё раз здравствуйте опять прошу помощи Идёт выборка из 2 таблиц, нужно сделать так если в запросе а переменной $val стоит 0 то строка AND (I.val4 = $val4) должно отсутствовать а если что то другое то присутствовать. PHP: case 'a': $sql = "SELECT * FROM table as I JOIN table2 as N ON (I.val1 = aaa) AND (I.val2 = bbb) AND (I.val4 = $val4) AND (I.val5 = N.val5) break; Пробовал сделать так но не выходит PHP: case 'a': $sql = "SELECT * FROM table as I JOIN table2 as N ON (I.val1 = aaa) AND (I.val2 = bbb) "if ($val4 == 0){}else AND (I.val4 = $val4);" AND (I.val5 = N.val5) break;
$sql = "SELECT * FROM table as I JOIN table2 as N ON (I.val1 = aaa) AND (I.val2 = bbb)"; if ($val4 != 0) $sql .= " AND (I.val4 = $val4);" $sql .= " AND (I.val5 = N.val5); Погугли что такое конкатенация строк.
PHP: <?php $sql = "SELECT * FROM table as I JOIN table2 as N ON (I.val1 = aaa) AND (I.val2 = bbb) " . ($val4 ? " AND (I.val4 = $val4) " : "") . " AND (I.val5 = N.val5)";
tommyangelo Спасибо прочту! только не совсем понял, или вы что то не дописали или ещё что-то но уменя пишет синтекс ерор alive342 Спасибо, это упрощёний if else? можно сылку на синтаксис? а то гугл не хочет отобразить мои мысли в запросе
Fuuuuu Я привел пример, причем не отличающийся от примера alive342, у него запись короче, используется тернарный оператор http://php.su/learnphp/operators/?compar Твой запрос даже не читал. показал как разбить на части, а ты уж сам его корректно напиши, отладь например в phpmyadmin, а только потом в php засовывай.