За последние 24 часа нас посетили 23440 программистов и 1602 робота. Сейчас ищут 873 программиста ...

Намудрил..нужно просто составить правильный запрос.

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

  1. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Уже совсем близок к цели..но не составить запрос на вставку ..а может и UPDATE. НЕ понимаю, что правильней в данном случае.

    Вот структура в ней 3 таблицы:

    [sql]CREATE TABLE `names` (
    `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 `history` (
    `id` int(10) unsigned not null auto_increment,
    `text` text,
    `page` int(10) unsigned not null,
    `name_id` int(10) unsigned not null,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`page`,`name_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

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



    Представим ситуацию, что первая таблица names уже заполнена.

    Условие которое связывает таблицу names с другими

    `history` `name_id` = `names`.`id
    `tracklist` `name_id` = `names`.`id




    Как мне вставлять данные например в таблицу tracklist

    [sql]$query = "INSERT INTO `tracklist` (`text`, `page`, `name_id`) VALUES ('$t1', '1', '????') name_id` = `names`.`id` WHERE `name`='$name";[/sql]


    $t1--мой текст

    $name--перпеменная get , которая получает имя.



    Заранее благодарю.)
     
  2. Devzirom

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

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    [sql]INSERT INTO `tracklist` (`text`, `page`, `name_id`)
    VALUES ('$t1', '1', (SELECT `names`.`id` FROM `names` WHERE `name` = '$name'));[/sql]
     
  3. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Спасибо дружище )

    Сам сделал намного сложнее, поэтому буду юзать твой способ.

    [sql] $sql = "SELECT id FROM `names` WHERE name='$nazv'";
    $data = mysql_query($sql);
    $qq=mysql_fetch_assoc($data);
    $id=$qq['id'];
    $query = "INSERT INTO `tracklist` (`text`, `page`, `name_id`) VALUES ('$t1', '1', '$id')";
    mysql_query($query) or die(mysql_error());[/sql]
     
  4. Jampire

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

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    Если у вас есть условия, то почему в определении таблиц они не указаны?
     
  5. Dima4321

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

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

    Заранее спасибо.
     
  6. Jampire

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

    С нами с:
    22 авг 2009
    Сообщения:
    181
    Симпатии:
    0
    Адрес:
    Гомель
    Нет, тут не подойдут внешние ключи, движок не тот.