Отбросить else

Aidar

Guest
Отбросить else

Есть функция:
PHP:
function CheckSpec()
  {
  //...код
  if( !ereg( "^[0-9.]{4,7}$" , $_POST['code'] ) ) {
    $Errors[] = 'Вы использовали недопустимые символы или ввели слишком короткий код.';
  } /*НАЧАЛО*/ else {
    $result = mysql_query("SELECT Fak,Code,Specname FROM specialty WHERE Fak=$_POST[fak] AND Code='$_POST[code]' AND Specname='$_POST[specname]'");
  if( mysql_num_rows( $result ) == 1 ) { $Errors[] = 'Такая запись в базе уже есть!'; }
  }
  //...код
}
Мне неодюходимо,что при передаче функции некоторого параметра (например CheckSpec($edit=1)) не выполнялся блок else (начиная с /*НАЧАЛО*/). Как можно это сделать?
 

DimbIch

Новичок
if( !ereg( "^[0-9.]{4,7}$" , $_POST['code'] ) AND $edit = 1 )

типа того...
тогда else не выполниться...
 

tristram

Guest
мне тоже такое знакомо, часто бывало нужно. вместо else подставляю "if (!<выражение из предыдущего if)", "!!" можно сокращать.
 

SiMM

Новичок
> вместо else подставляю "if (!<выражение из предыдущего if)", "!!" можно сокращать.
Воть ведь дурь-то какая...
 

SiMM

Новичок
Да потому что вместо вполне логичной конструкции
PHP:
function CheckSpec($edit=NULL) { 
  //...код 
  if( !ereg( "^[0-9.]{4,7}$" , $_POST['code'] ) ) { 
    $Errors[] = 'Вы использовали недопустимые символы или ввели слишком короткий код.'; 
  }
  elseif ($edit !== 1) { 
    $result = mysql_query("SELECT Fak,Code,Specname FROM specialty WHERE Fak=$_POST[fak] AND Code='$_POST[code]' AND Specname='$_POST[specname]'"); 
    if( mysql_num_rows( $result ) == 1 ) { $Errors[] = 'Такая запись в базе уже есть!'; } 
  } 
  //...код 
}
ты предлагаешь костыли. Честно говоря, вообще не понятен смысл того, что ты предложил - зачем предлагать вместо
PHP:
if (условие1) действие1;
else действие2;
писать
PHP:
if (условие1) действие1;
if (!условие1) действие2;
и как это относится к поставленному вопросу.
 

tristram

Guest
PHP:
if (условие1) действие1; 
дейстие3;
else действие2;
//Фатал
а вот
PHP:
if (условие1) действие1; 
дейстие3;
if (!условие1) действие2;
//всё ок
 

SiMM

Новичок
tristram, прочти вопрос. Медленно. Вдумчиво. И в следующий раз всегда так поступай. Прежде чем начнёшь строчить ответ.
 

Aidar

Guest
Мутник
Потому что при добавлении новой записи эта проверка нужна, а вот при редактировании нет.
 
Сверху