За последние 24 часа нас посетили 64092 программиста и 1742 робота. Сейчас ищут 853 программиста ...

Как мне сделать запрос на запись ко второй таблице

Тема в разделе "PHP и базы данных", создана пользователем jei, 1 окт 2010.

  1. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    такой вопрос есть у меня
    Есть база данных.
    В ней две таблицы.
    Как мне сделать запрос на запись ко второй таблице
    База данных называется users и первая табилца тоже users


    PHP:
    1. $link = mysql_connect("localhost", "root", "")
    2. or die("Не могу подключиться" ); // сделать test текущей базой данных
    3. mysql_select_db('users', $link) or die ('Не могу выбрать БД');
    4.  
    5. $query = "INSERT INTO users VALUES(NULL,$_POST['proizv'],$_POST['model'],$_POST['a1'],$_POST['god'])";
    6.  
    7. $result = mysql_query($query);
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А вторая таблица как называется? Задача не ясна, ответ прост: так же как и к первой таблице.
     
  3. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    вторая таблица называется machines
     
  4. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    вы думаете я идиот mysql_select_db берёт в параметр базу данных именно а не таблицу и в запросе тоже
    $query = "INSERT INTO users VALUES(NULL,$_POST['proizv'],$_POST['model'],$_POST['a1'],$_POST['god'])";

    идёт обращение к базе или таблице?
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Конечно.
    В документации отчетливо сказано о синтаксисе запроса.
    mysql_select_db выбирает БД, с которой работать. Это функция РНР. Её можно заменить спокойно на запрос "use dbname"
    Точно так же и всё остальное - запрос к таблице? Измени имя этой таблицы в запросе.
     
  6. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    тоесть здесь идёт выбор таблицы
    $query = "INSERT INTO users VALUES(NULL,$_POST['proizv'],$_POST['model'],$_POST['a1'],$_POST['god'])";

    а здесь именно выбор бызы
    mysql_select_db('users', $link) or die ('Не могу выбрать БД');
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  8. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    Хорошо тогда почему он мне не записывает данные в таблицу.Уже всё перепробовал.
    У меня в таблице 5 полей.И типы правильно всё делал
     
  9. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Смотри mysql_error
    Скорее всего несоответствие полей тем, что в запросе.
    Не забывай, что стоит обрамлять кавычками текстовые поля.
     
  10. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    так вот он ошибку не даёт .
    если там добавить сценарий.Он скажет что переменной $result не существует.
    Тоесть фалсе даёт.Значит запрос дохнет.А кавычками тоже делал не помогает.А ели у меня запрос меньще
    чем полей в базе.Он же должен записать только те поля что есть по идеи?Или из за этого дохнет?
     
  11. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    уффффф сработало спасибо часа 3 потерял.На такую глупость)))
     
  12. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    тут теперь новый вопрос назрел запрос не хочет работать с $_POST['proizv']

    как правильно написать

    $query = "INSERT INTO machines VALUES('".$_POST['proizv']"','qweew','145000','1981','dsdfaa')";
     
  13. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    $query = "INSERT INTO machines VALUES('".$_POST['proizv']."','qweew','145000','1981','dsdfaa')";
     
  14. jei

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

    С нами с:
    11 июн 2009
    Сообщения:
    542
    Симпатии:
    0
    спасибо дружище.А то везде искал не мог найти.Я так понимаю эти точки нужны как операция конкатенация строк?
     
  15. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    tommyangelo
    И зачем было использовать двойные кавычки??

    PHP:
    1. <?php
    2. $q = 'INSERT INTO table VALUES (\''.$value1.'\', '.(int)$value2.', '.(int)$value3.', \'text row\', 1111)';
     
  16. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    jei
    Да, конкатенация, соединение строк.

    admyx
    Если внимательно посмотреть, то у человека был готовый запрос, но с синтаксической ошибкой. Я лишь указал ему на неё. Пользуйся какими нравится, никто ж не против)))))
     
  17. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    $query = "INSERT INTO machines VALUES('{$_POST['proizv']}', 'qweew', '145000', '1981', 'dsdfaa')";

    в этом-то и заключается вся прелесть двойных кавычек - переменные обрабатываются внутри строки самим парсером.

    ПЫСЫ: но также это открывает дырку, если непрослешировать данные.