Простите, зарегался чтобы это спросить (пришлось дважды, такой сайт)! Почему так работает, Код (Text): if( $_POST["emailaddress"] AND $_POST["username"]) { $Query = sprintf("INSERT INTO users VALUES ('', %s, %s)", quote_smart($_POST['username']), quote_smart($_POST['emailaddress'])); $Result = mysql_query( $Query ); } а так не работает?! Подзапросы вообще чтоль использовать нельзя? (пробовал с кавычками и т.д., дело не в синтаксисе) Код (Text): if( $_POST["emailaddress"] AND $_POST["username"]) { $Query = sprintf("INSERT INTO users VALUES ((select max(id)+1 from users), %s, %s)", quote_smart($_POST['username']), quote_smart($_POST['emailaddress'])); $Result = mysql_query( $Query ); }
а там разве явно поля не надо объявить? Добавлено спустя 1 минуту 6 секунд: http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Явно объявлять не нужно, если поступающие данные VALUES удовлетворяют. Добавлено спустя 1 минут 0 секунду: Так-как ты используешь одну и ту же таблицу, то mysql впадает в неоднозначность, поэтому поставь алиас: Код (Text): (select max(id)+1 from users u)