Общие > Базы данных

SQL один ко многим и др., как в Перле реализ.

(1/2) > >>

Yuraz:
Всем доброго времени суток! Вот вроде и дошел как связать 2 и более таблицы. Сделал по своему, но это не то, связывать надо по ID а я просто по TXT полю, т.е. делаю так,

конектюсь, далее запрос для первой таблицы,

sub show{
$sqlstatement = "SELECT * FROM $tablename ORDER BY $sort";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "Невозможно выполнить SQL-запрос.";
}

далее запрос для второй таблицы

sub firma
{
$sqlstatement2 = "SELECT * FROM $tablename2 ORDER BY firma_name";
$sth2 = $dbh->prepare($sqlstatement2);
$sth2->execute || die "Невозможно выполнить SQL-запрос.";
}

После чего вывожу в форму для ввода данных

sub add
  {
       &firma;
       print "
";
       print "Добавление товара";
       print "";
       print "";
       print "Имя: ";
        while (@rowf=$sth2->fetchrow_array)
        {
        print "@rowf[1]";
        }
       print "";
       print "Добавить фирму";
       print "";
       print "ФИО: ";
       print "Должность: ";
       print "Адрес: ";
       print "URL: ";
       print "E-mail: ";
       print "
";
  }


Где подчеркнуто, там данные из другой таблицы. Т.е. я ссылаюсь на текст, который так же записывается , и дублируется много раз в главной таблице, а по идее там должны быть только индексы.
Тогда проблема с вводом, если @rowf[1] само название, то куда сдесь вставить индексы?

Как сделать ввод в гл. табл. и её вывод правильно?

Вот ещё вставил картинку, что и начал делать :)

Спасибо!

AlieN:

--- Цитировать ---$sqlstatement2 = "SELECT * FROM $tablename2 ORDER BY firma_name";
--- Конец цитаты ---



--- Цитировать ---@rowf[1]
--- Конец цитаты ---


У второй таблицы у тебя должен быть ид
а в главной таблице тоже поле ид и этот ид - ссылка на ид второй таблицы

в итоге:

<option value=$rowf[0]>$rowf[1]</option>

$rowf[0] - ID
$rowf[1] - к примеру название

PS: если включих перл с режимом предупреждений(/usr/bin/perl -w) у тебя будет куча предупреждений типа:

@rowf[1] лучше чтобы было написано $rowf[1]

Yuraz:
AlieN спасибо! value то я и опустил..Сейчас сделаю, ещё вопросик, как "У второй таблицы у тебя должен быть ид "?

AlieN:
Yuraz
1 - я таблица:
бла бла бла бла бла бла  ID-фирмы(если я правильно понял)
2 - я таблица
бла бла про фирмы id-фирмы

Yuraz:
while (@row=$sth->fetchrow_array)
        {
        print "$row[0]\\n";
        print "$row[1]\\n";
        print "$row[2]\\n";
        }

AlieN , помоги, как вместо $row[2] вставить данные из другой таблицы. $row[2] хранит ссылку на данные в другой таблице, фактически в $row[2] записанна цифра, а во 2й табл. два столбца, ID и поле. Нужно что бы смотря какая цифра 1й табл, подставлялись данные поля 2й табл.. 3 часа подставляю.. никак не могу дойти  :(

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии