Aidar
Guest
Проверка на валидность
Есть функция правильности заполнения полей. Сначала выполняется подключение к базе. Эта функция работает и опробована ранее.
Потом идет проверка заполнены ли все поля, если нет, то выводится ошибка (сначала все ошибки записываются в массив).
Если поля не пустые, то проверяется, что введено и если оно не соответствует требуемым данным, то опять же выводится ошибка.
Далее идет проверка, существует ли данная запись в базе. У каждой записи свой уникальный код (Code), который вводит пользователь, по нему и проверяем.
В конце приведу полный код:
Так вот у меня выскакивает ошибка:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\work\www\kernel.php on line 230
И запись не пройдя последнюю проверку на совпадение добавляется в базу!
Вот таблица MySQL:
Id smallint(6) Нет
Code smallint(4) Нет
Specname varchar(255) Нет
Как исправить ошибку?
Есть функция правильности заполнения полей. Сначала выполняется подключение к базе. Эта функция работает и опробована ранее.
PHP:
db_connect( "kampi_db" );
global $_POST;
PHP:
if( empty( $_POST['code'] ) || empty( $_POST['specname'] ) ) { $Errors[] = 'Не заполнены все поля.'; }
PHP:
if(!empty( $_POST['code'] ) || !empty( $_POST['specname'] ) ) {
if( !ereg( "^[а-яА-Я ]{25,255}$" , $_POST['specname'] ) ) { $Errors[] = 'Вы использовали недопустимые символы или ввели слишком короткое название.'; }
if( !ereg( "^[1-5]{2}[0-9]{2}$" , $_POST['code'] ) ) {
$Errors[] = 'Вы использовали недопустимые символы или ввели слишком короткий код.';
PHP:
} else {
$result = mysql_query("select '*' from 'speciality' where 'Code' like '$_POST[code]'");
if( mysql_num_rows( $result ) == 1 ) {
$Errors[] = 'Такая запись в базе уже есть!'; }
}
}
PHP:
db_connect( "kampi_db" );
global $_POST;
if( empty( $_POST['code'] ) || empty( $_POST['specname'] ) ) { $Errors[] = 'Не заполнены все поля.'; }
if(!empty( $_POST['code'] ) || !empty( $_POST['specname'] ) ) {
if( !ereg( "^[а-яА-Я ]{25,255}$" , $_POST['specname'] ) ) { $Errors[] = 'Вы использовали недопустимые символы или ввели слишком короткое название.'; }
if( !ereg( "^[1-5]{2}[0-9]{2}$" , $_POST['code'] ) ) {
$Errors[] = 'Вы использовали недопустимые символы или ввели слишком короткий код.';
} else {
$result = mysql_query("select 'Code' from 'speciality' where 'Code' like '$_POST[code]'");
if( mysql_num_rows( $result ) == 1 ) { $Errors[] = 'Такая запись в базе уже есть!'; }
}
}
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\work\www\kernel.php on line 230
И запись не пройдя последнюю проверку на совпадение добавляется в базу!
Вот таблица MySQL:
Id smallint(6) Нет
Code smallint(4) Нет
Specname varchar(255) Нет
Как исправить ошибку?