За последние 24 часа нас посетили 20108 программистов и 1725 роботов. Сейчас ищут 1850 программистов ...

Подзапросы к базе

Тема в разделе "Вопросы от блондинок", создана пользователем Kvilp, 22 мар 2012.

  1. Kvilp

    Kvilp Активный пользователь

    С нами с:
    22 мар 2012
    Сообщения:
    2
    Симпатии:
    0
    Простите, зарегался чтобы это спросить (пришлось дважды, такой сайт)!
    Почему так работает,
    Код (Text):
    1. if( $_POST["emailaddress"] AND $_POST["username"])
    2. {
    3. $Query = sprintf("INSERT INTO users VALUES ('', %s, %s)", quote_smart($_POST['username']), quote_smart($_POST['emailaddress']));
    4.  
    5. $Result = mysql_query( $Query );
    6. }
    а так не работает?! Подзапросы вообще чтоль использовать нельзя? (пробовал с кавычками и т.д., дело не в синтаксисе)
    Код (Text):
    1. if( $_POST["emailaddress"] AND $_POST["username"])
    2. {
    3. $Query = sprintf("INSERT INTO users VALUES ((select max(id)+1 from users), %s, %s)", quote_smart($_POST['username']), quote_smart($_POST['emailaddress']));
    4.  
    5. $Result = mysql_query( $Query );
    6. }
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
  3. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Явно объявлять не нужно, если поступающие данные VALUES удовлетворяют.

    Добавлено спустя 1 минут 0 секунду:
    Так-как ты используешь одну и ту же таблицу, то mysql впадает в неоднозначность, поэтому поставь алиас:
    Код (Text):
    1.  
    2. (select max(id)+1 from users u)
     
  4. Kvilp

    Kvilp Активный пользователь

    С нами с:
    22 мар 2012
    Сообщения:
    2
    Симпатии:
    0
    AndreJM однозначно спасибо, разобрался!