Здравствуйте, помогите пожалуйста разобраться, как организовать проверку при записи в БД сразу по по фамилии имени и отчеству, т.е. сообщение об ошибке должно выдаваться, только если в базе существуют все 3 записи (name, surname, patronymic ). PHP: <? $name = !empty($_POST['name']) ? $_POST['name'] : ''; $surname = !empty($_POST['surname']) ? $_POST['surname'] : ''; $patronymic = !empty($_POST['patronymic']) ? $_POST['patronymic'] : ''; $specialty = !empty($_POST['specialty']) ? $_POST['specialty'] : ''; $group = !empty($_POST['group']) ? $_POST['group'] : ''; $year = !empty($_POST['year']) ? $_POST['year'] : ''; if (!$name || !$surname || !$patronymic || !$specialty || !$group || !$year) { echo "You have not entered all the required details. Please go back and try again."; exit; } $number=0; mysql_connect('localhost','root','') OR die("Dont connect"); mysql_select_db('users') or die(mysql_error()); @mysql_query('set character_set_client="utf8"'); @mysql_query('set collation_connection="utf8_general_ci"'); $result = mysql_query("SELECT * FROM 'name' WHERE login = $name"); if(@mysql_num_rows($result) > 0 ) { echo "Извините такой логин уже есть"; } else{ $query="insert into `users` (`number`, `name`, `surname`, `patronymic`, `specialty`, `group`, `year`) values (null, '".$name."', '".$surname."', '".$patronymic."', '".$specialty."', '".$group."', '".$year."')"; mysql_query($query) or die(mysql_error()); echo "User ADD"; } mysql_close(); ?>
$temp = mysql_query("SELECT COUNT(*) FROM `table1` WHERE `name` = '".$name."' AND `surname` = '".$surname."' AND `patronymic` = '".$patronymic ."'"); if(mysql_result($temp, 0) > 0) echo 'Уже есть'; else {.... добавляем}
Пишет следующую ошибку: "Warning: mysql_result() expects parameter 1 to be resource, boolean given in Z:\home\users.ru\www\adduser.php on line 28" И не смотря на это добавляет запись в базу. PHP: <? $name = !empty($_POST['name']) ? $_POST['name'] : ''; $surname = !empty($_POST['surname']) ? $_POST['surname'] : ''; $patronymic = !empty($_POST['patronymic']) ? $_POST['patronymic'] : ''; $specialty = !empty($_POST['specialty']) ? $_POST['specialty'] : ''; $group = !empty($_POST['group']) ? $_POST['group'] : ''; $year = !empty($_POST['year']) ? $_POST['year'] : ''; if (!$name || !$surname || !$patronymic || !$specialty || !$group || !$year) { echo "You have not entered all the required details. Please go back and try again."; exit; } $number=0; mysql_connect('localhost','root','') OR die("Dont connect"); mysql_select_db('users') or die(mysql_error()); @mysql_query('set character_set_client="utf8"'); @mysql_query('set collation_connection="utf8_general_ci"'); $temp = mysql_query("SELECT COUNT(*) FROM `table1` WHERE `name` = '".$name."' AND `surname` = '".$surname."' AND `patronymic` = '".$patronymic ."'"); if(mysql_result($temp, 0) > 0) echo 'Уже есть'; else{ $query="insert into `users` (`number`, `name`, `surname`, `patronymic`, `specialty`, `group`, `year`) values (null, '".$name."', '".$surname."', '".$patronymic."', '".$specialty."', '".$group."', '".$year."')"; mysql_query($query) or die(mysql_error()); echo "User ADD"; } mysql_close(); ?>
Попробуй так вместо Код (Text): $temp = mysql_query("SELECT COUNT(*) FROM `table1` WHERE `name` = '".$name."' AND `surname` = '".$surname."' AND `patronymic` = '".$patronymic ."'"); заменить Код (Text): $query = "SELECT COUNT(*) FROM `table1` WHERE `name` = '".$name."' AND `surname` = '".$surname."' AND `patronymic` = '".$patronymic ."'"; $temp = mysql_query($query);
не проходит проверка. ругается Warning: mysql_result() expects parameter 1 to be resource, boolean given in Z:\home\users.ru\www\adduser.php on line 22 как я понимаю, вот на это Код (Text): if(mysql_result($temp, 0) > 0) echo 'Уже есть';
после вот этой строки Код (Text): $query = "SELECT COUNT(*) FROM `table1` WHERE `name` = '".$name."' AND `surname` = '".$surname."' AND `patronymic` = '".$patronymic ."'"; пишешь echo $query; die(); И смотрим получившийся запрос.
для теста использую 1,2,3 в этих 3 формах Код (Text): SELECT COUNT(*) FROM `table1` WHERE `name` = '1' AND `surname` = '2' AND `patronymic` = '3'
Невнимательность надо было просто исправить `table1` на имя моей таблицы `users` Сейчас все заработало, спасибо.
Еще такой вопросик, как можно реализовать, чтобы при ошибке добавления, если заполнены не все поля или такой пользователь уже есть, сообщение об ошибке выводилось на той же страничке, где находятся сами формы для ввода данных, желательно над ними, а в случае успешного добавления переходило на другую страничку.(сейчас все сообщения выдаются на новой чистой странице)