Общие > Базы данных
SQL один ко многим и др., как в Перле реализ.
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 часа подставляю.. никак не могу дойти :(
Навигация
Перейти к полной версии