За последние 24 часа нас посетил 23361 программист и 1664 робота. Сейчас ищут 779 программистов ...

Выполнить вставку в базу .Запутался.

Тема в разделе "PHP для новичков", создана пользователем Dima4321, 17 фев 2011.

  1. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Есть 2 таблицы

    [sql]CREATE TABLE `products` (
    `id` int(10) unsigned not null auto_increment,
    `name` varchar(128) not null,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

    CREATE TABLE `pages` (
    `id` int(10) unsigned not null auto_increment,
    `text` text,
    `number` int(10) unsigned not null,
    `product_id` int(10) unsigned not null,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`number`,`product_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;[/sql]

    products и pages

    Связаны между собой так id в products == product_id в pages.

    Как правильно вставить . Пишет , что синтаксическая ошибка мускула.

    Код (Text):
    1. $nazv=$_POST['NAZV'];
    2.  
    3.  
    4.  $p1// текст первая страница
    5.  $p// текст вторая страница
    6.  $query = "INSERT INTO `products` (`id`, `name`) VALUES (id, '$nazv')";
    7.  mysql_query($query) or die(mysql_error());
    8.  $id='id'; // вот здесь наверно туплю
    9.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p', '1', '$id')";
    10.  mysql_query($query) or die(mysql_error());
    11.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p2', '2', '$id')";
    12.  mysql_query($query) or die(mysql_error());
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  3. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    При вставке контента пишет однотипные вещи вот :
    Или так

    Код (Text):
    1. $query = "INSERT INTO `products` (`id`, `name`) VALUES (id, '$nazv')";
    2.  mysql_query($query) or die(mysql_error());
    3.  $id=mysql_insert_id();
    4.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p', '1', '$id')";
    5.  mysql_query($query) or die(mysql_error());
    6.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p2', '2', '$id')";
    7.  mysql_query($query) or die(mysql_error());
    ШШооо это значит господа ??))
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это значит что ты не прочитал мое сообщение целиком
     
  5. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Вот почему все опытне люди любят помучать таких недоразвитых как я. !!))

    Ну не уловил я больше инфы...из твоего поста.

    Понял, что id можно сохранить в переменную с помощью функции mysql_insert_id();

    Что и сделал...
     
  6. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Вот упрощеная штука работает как часы

    PHP:
    1. <?php
    2.  ini_set('display_errors', 1);
    3.  error_reporting(E_ALL);
    4.  include('yzel.php');
    5.  
    6.  
    7.  $nazv='Bad';
    8.  
    9.  $p='hello';
    10.  $p2='buy';
    11.  $query = "INSERT INTO `products` (`id`, `name`) VALUES (id, '$nazv')";
    12.  mysql_query($query) or die(mysql_error());
    13.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p', '1', '$id')";
    14.  mysql_query($query) or die(mysql_error());
    15.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p2', '2', '$id')";
    16.  mysql_query($query) or die(mysql_error());
    17.  
    18.  
    19.  
    20.  ?>
     
  7. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Наверно надо что-то экранировать ммм...ошибка же из-за этого ??
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    слепой мышь
    $query = "INSERT INTO `products` (`id`, `name`) VALUES (id, '$nazv')";
    $query = "INSERT INTO `products` (`name`) VALUES ('$nazv')";
     
  9. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    igordata
    ты прикалываешься ??? зачем мне дублировать вставку ??


    Вообщем ошибку иправил так:

    PHP:
    1.  $query = "INSERT INTO `products` (`id`, `name`) VALUES (id, '$nazv')";
    2.  mysql_query($query) or die(mysql_error());
    3.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p', '1', '$id')";
    4.  mysql_query($query) or die(mysql_error());
    5.  $query = "INSERT INTO `pages` (`id`, `text`, `number`, `product_id`) VALUES ('id', '$p2', '2', '$id')";
    6.  mysql_query($query) or die(mysql_error());
    теперь все всавляется в базу Ура !!!!!! )
     
  10. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    Поля id в таблицах products и pages auto_increment. Поэтому их в запросе на вставку можно не указывать:
    PHP:
    1.  
    2. $query = "INSERT INTO `products` (`name`) VALUES ('$nazv')";
    3. $query = "INSERT INTO `pages` (`text`, `number`, `product_id`) VALUES ('$p', '1', '$id')";
    4. $query = "INSERT INTO `pages` ( `text`, `number`, `product_id`) VALUES ('$p2', '2', '$id')";
    5.  
     
  11. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    runner

    Спасибо большое --теперь понятно , что имел вввиду igordata )
     
  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Dima4321
    Читать потому что надо, а не глазами пробегать.

    runner
    завтра у него будет все то же самое, потому что он так и не попробовал научиться читать =) Ты дал ему рыбу.
     
  13. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    но не научил ее ловить...


    )))