|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
Въвеждане на данни в 2 таблици???
|
|
Автор |
tonchita (непознат
) |
Публикувано | 19.12.08 21:52 |
|
Здравейте,аз сам новак в БД и сега се сблъсках със следния проблем:
Имам 2 таблици в базата - accounts и info
Таблица accounts има 3 полета - account_id(PRIMARY KEY, AUTO INCREMENT), username и password
Таблица info има 4 полета - info_id(PRIMARY KEY, AUTO INCREMENT), name, lastname и account(UNIQUE KEY)
полетата account_id от първата таблица е свързано с полето account от втората таблица така:
ALTER TABLE `info` ADD FOREIGN KEY ( `account` ) REFERENCES `hotel`.`accounts` (
`account_id`
) ON DELETE CASCADE ON UPDATE CASCADE ;;
Целта ми е да попълня форма за регистрация, където да въведа Име, Фамилия, Username и Password и
Име и Фамилия да отидат в таблица info, а Username i Password да отидат в таблица accounts.
Надявам се накой да ми помогне, Благодаря Ви!
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: tonchita]
|
|
Автор |
bira_more (бира) |
Публикувано | 19.12.08 22:07 |
|
Ако ползваш MySQL (добре е да казваш коя БД ползваш, евентуално и версията) - има last_insert_id()
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
Та - инсъртваш в първата таблица, взимаш си ID'to и инсъртваш във втората таблица
Bеer? Mоre?
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: bira_more]
|
|
Автор |
tonchita (непознат
) |
Публикувано | 19.12.08 22:43 |
|
използвам InnoDB
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: tonchita]
|
|
Автор |
bira_more (бира) |
Публикувано | 19.12.08 22:52 |
|
Ми виж линка дали може да ти свърши работа.
Аз до сега съм ползвал само MyISAM.
Bеer? Mоre?
| |
|
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
Коментарите може да ти спестят време.
Bеer? Mоre?
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: tonchita]
|
|
Автор |
wiz (100 тонa змей) |
Публикувано | 19.12.08 23:06 |
|
ми на мен не ми се занимава да ти преразказвам документацията за разлика от бирата
така че ти предлагам 2 варианта
1. прочиташ как става, пише го на много места и го правиш
2. черпиш някои като бирата или мен да напише на бързо кода
No pain, no gain
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: wiz]
|
|
Автор |
bira_more (бира) |
Публикувано | 19.12.08 23:18 |
|
Теб - аз спрях бирата
Bеer? Mоre?
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: bira_more]
|
|
Автор |
wiz (100 тонa змей) |
Публикувано | 19.12.08 23:26 |
|
ми може да си спрял бирата ама аз съм капризен и взискателен към вида на бирата
така че не е толкова просто да ме почерпи колкото сигурно мислиш
No pain, no gain
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: wiz]
|
|
Автор |
wqw (АзСъмЖив) |
Публикувано | 19.12.08 23:38 |
|
Само мога да си представя как между двата INSERT-а ще сложиш random изчакване, за всеки случай. Транзакции изключвам да ползваш, щото тях само някой заслепен като нас "проповядва"...
| |
Тема
|
ти си типичен бай ганьо
[re: wqw]
|
|
Автор |
wiz (100 тонa змей) |
Публикувано | 19.12.08 23:44 |
|
хахахахахахахахахахахахахахахахахахахахахахахахахахахахахаха
тва ти е поредната изцепка
айде пробвай да разбереш че освен моята и "вашата" идея от предната тема мога да реализирам още няколко които исках да обсъдим ама от твоите глупости не стана дума
и пак ти казвам никво random изчакване не съм предлагал,тва ти го измисли от твоето повърхностно преписване
по скоро при теб има шаблон в поведението: дрънкаш глупости и изцепки като не разбираш че се излагаш само, типичен бай ганьо
No pain, no gain
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: tonchita]
|
|
Автор |
salle (един такъв) |
Публикувано | 20.12.08 07:50 |
|
Няма значение дали използваш InnoDB или MyISAM. Това което бирата ти препоръча работи с всяка таблица която има auto_increment
INSERT INTO t1 ....;
INSERT INTO t2 (t1_id, ...) VALUES(LAST_INSERT_ID(), ...)
това ти гарантира, че в таблица t2 ще вмъкнеш последния генериран auto_inc id от t1 в тази сесия независимо, че междувременно и други могат да генерират по-големи id
Проблем имаш единствено ако използваш многоредов INSERT. Тогава по-доброто решение е TRIGGER
TRIGGER можеш да използваш винаги з атази задачка дори и ако нямаш auto_increment
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: salle]
|
|
Автор |
tonchita (непознат
) |
Публикувано | 27.12.08 16:57 |
|
Вижте какво направих, но нещо не работи.
След като попълня формата и натисна Submit ми изписва следното:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
<?php
mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
mysql_select_db('hotel');
///////////////////////////////////////////////////////////////
$username = $_POST['username'];
$password = $_POST['password'];
$datetime = $_POST['datetime'];
$day_validation = $_POST['day_validation'];
$level_user = $_POST['level_user'];
$insertSQL = sprintf("INSERT INTO accounts (account_id, username, password, datetime, day_validation, level_user) VALUES ('', '$username', '$password', '$datetime', '$day_validation', '$level_user'");
$Result = mysql_query($insertSQL) or die(mysql_error());
$name = $_POST['name'];
$second_name = $_POST['second_name'];
$last_name = $_POST['last_name'];
$room = $_POST['room'];
$account = $_POST['account'];
$insert3SQL = sprintf("INSERT INTO info (name, second_name, last_name, room, account) VALUES ('$name', '$second_name', '$last_name', '$room', LAST_INSERT_ID()");
$Result3 = mysql_query($insert3SQL) or die(mysql_error());
?>
| |
Тема
|
Re: Въвеждане на данни в 2 таблици???
[re: tonchita]
|
|
Автор |
tonchita (непознат
) |
Публикувано | 27.12.08 21:34 |
|
Вече си реших проблема, Благодаря на всички!
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|