[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с админкой
MrBrown
Здравствуйте!
Делаю простую админку для набивания словаря: всего два окна - термин и объяснение термина. Ну и кнопка "занести в базу".
Имею две таблицы:
первая `letters` с 2-мя полями `id` и `letter`. В поле `letter` занесены буквы русского алфавита.
Вторая таблица `dictionary` c 4-мя полями `id`, id_letters`(dictionary.id_letters=letters.id), `term` и `text`.
У меня не получается, чтобы при занесении очередного термина в таблицу `dictionary` в поле `id_letters` этой же таблицы автоматически заносился бы id из таблицы `letters`. Как выцепить первую букву термина я знаю. А как найти номер id, соответствующей этой букве? И что делать с ним дальше, как сформировать запрос INSERT?
Спасибо.
p.s. Обработку делаю так: ввод информации - в файле new_term.php,
занесене в базу при помощи файла add_term.php.



Спустя 8 минут, 46 секунд (23.02.2012 - 13:26) vagrand написал(а):
Читай про mySQL функцию last_insert_id()

Спустя 2 минуты, 20 секунд (23.02.2012 - 13:28) shmali написал(а):
Покажи код , будем смотреть что ты там пытаешься сделать .

Спустя 30 минут, 36 секунд (23.02.2012 - 13:59) MrBrown написал(а):
CREATE TABLE `letters` (
`id` int(11) NOT NULL auto_increment,
`letter` varchar(1) NOT NULL,
PRIMARY KEY (`id`)

CREATE TABLE `dictionary` (
`id` int(11) NOT NULL auto_increment,
`id_letters` int(2) NOT NULL,
`term` varchar(100) default NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)

Это таблицы. В первой находятся только буквы алфавита. Во вторую я загоняю инфу - термин (в поле term) и разъяснение (в поле text). Таблицы связаны по полю id_letters.

Часть файла new_term.php:
    <p><strong>Добавление нового термина</strong></p>
<form
name="form1" method="post" action="add_term.php">
<p>
<label>
Введите название термина<br>
<input
type="text" name="term" id="term" size="80">
</label>
</p>

<p>
<label>
Введите объяснение термина<br>
<textarea
name="text" id="text" cols="80" rows="7"></textarea>
</label>
</p>



Часть обработчика (add_term.php):
<?php

$first_letter = $myrow['term'][o];
/*Если существуют все записи в форме*/
if (isset($term) && isset($text))
{
/*можно заносить инфу в базу*/
$result = mysql_query ("INSERT INTO `dictionary` (id_letters, term, text) VALUES ('$first_letter', '$term', '$text')");
if ($result == 'true') {echo "<p>термин успешно добавлен!</p>";}
else {echo "<p>термин не добавляется по каким-то причинам</p>";}
}

else
{
echo "<p>Не все данные введены в форму. Да-с.</p>";
}
?>

Вместо $first_letter надо загнать цифру, соответствующую id этой буквs в таблице letters.
Но у меня и так не работает.

Спустя 17 минут, 12 секунд (23.02.2012 - 14:16) shmali написал(а):
так для того чтоб ты мог вставить туда ид его сначала надо выбрать .
Я пока не могу понять что ты переводишь , у тебя в одной таблице буквы а в другой слова ? (какая тогда между ними связь? вывод по алфавиту что ли? )

И вообще ты из админки записываешь сразу в обе таблицы , почему не возьмешь как советовали last_insert_id() ?

если это не подходит то объясни как должна работать твоя система .

Спустя 9 минут, 38 секунд (23.02.2012 - 14:26) MrBrown написал(а):
Да вот, я уже и сам начал сомневаться, нужна ли мне первая таблица с алфавитом.
Наверное, можно просто загонять во вторую таблицу все термины и разъяснения по мере их поступления, невзирая на последовательность ввода, а выводить - по алфавиту. Блин, только сейчас дотумкал, что так тоже можно. Или нельзя?

Спустя 3 минуты, 6 секунд (23.02.2012 - 14:29) shmali написал(а):
Можно конечно ))

order by

Спустя 3 минуты, 41 секунда (23.02.2012 - 14:33) MrBrown написал(а):
Так, народ, спасибо за участие, временно приостанавливаем эту тему. Пошёл стряпать код заново. Пятой точкой чувствую, что он будет проще и красивее.
Всем большое спасибо! И с праздником!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.