[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Связи между таблицами
Страницы: 1, 2
Tapak
F_Yuriy, смотри.
<option value="$m[id]">$m[name]</option>

В при передаче данных скрипту ты уже сможешь получить ID , тебе останется только записать эти данные в таблицу которую ты хотел.
F_Yuriy
Цитата (Tapak @ 22.12.2012 - 14:56)
F_Yuriy, смотри.
<option value="$m[id]">$m[name]</option>

В при передаче данных скрипту ты уже сможешь получить ID , тебе останется только записать эти данные в таблицу которую ты хотел.

нашел такой вариант, как Ваше мнение?
<?php
$dbc = mysqli_connect('localhost', 'myuser', '111', 'mytest')
or die ('Невозможно соединиться с базой данных');

$name_f = $_POST['menu'];
$sum = $_POST['sum1'];
$sum1 = $_POST['sum2'];
$sum2 = $_POST['sum3'];
$query = "INSERT INTO firm (id, name) VALUES (NULL, '$name_f')";
mysqli_query($dbc, $query)
or die ('Ошибка');
$newid=mysqli_insert_id($dbc);
$query2 = "INSERT INTO table1 (id, id_firm, sum, sum1, sum2) VALUES (NULL, '$newid', '$sum', '$sum1', '$sum2')";
mysqli_query($dbc, $query2)
or die('ошибка');
mysqli_close(dbc);
?>
F_Yuriy
Цитата (Valick @ 22.12.2012 - 14:38)
smile.gif сдаюсь
я не знаю как с вами бороться
вы упорно не хотите отделять мух от котлет
вы упорно не хотите отвечать, что такое $sum1, $sum2, $sum3
и какова сущность этих сумм, если это то что я подозреваю, то бд организована неправильно

*опустил руки, глубоко вздохнул, закрыл глаза ладонями, горько заплакал*

$sum1, $sum2, $sum3 - это введенные значения от пользователя. Которые заносятся в таблицу2

Нашел вариант, который выполняет нужное, как на Ваш взгляд?
Tapak
Это же вариант который предложил я?) Через форму было бы правильнее.
F_Yuriy
Цитата (Tapak @ 22.12.2012 - 15:16)
Это же вариант который предложил я?) Через форму было бы правильнее.

В форму я заношу данные и вызываю add.php а в нем я уже вставляю данные взятые из формы, узнаю id вставленной записи и присваиваю ее значением во вторую таблицу поле id_firm
Valick
Цитата
$sum1, $sum2, $sum3 - это введенные значения от пользователя. Которые заносятся в таблицу2

вы определенно издеваетесь smile.gif
я спрашивал сущность этих значений, почему их три, всегда их три или может быть одно, а может быть два. Измениться ли сущность если в поле для ввода Суммы1 ввести число Суммы3. Я хотел услышать что-то типа
Сумма1 - это сумма закупки "расходных материалов" на празднование нового года
Сумма2 - это сумма годовой прибыли фирмы
Сумма3 - это сумма зарплаты сотрудников фирмы и тд.



_____________
Стимулятор ~yoomoney - 41001303250491
F_Yuriy
Цитата (Valick @ 22.12.2012 - 15:58)
Цитата
$sum1, $sum2, $sum3 - это введенные значения от пользователя. Которые заносятся в таблицу2

вы определенно издеваетесь smile.gif
я спрашивал сущность этих значений, почему их три, всегда их три или может быть одно, а может быть два. Измениться ли сущность если в поле для ввода Суммы1 ввести число Суммы3. Я хотел услышать что-то типа
Сумма1 - это сумма закупки "расходных материалов" на празднование нового года
Сумма2 - это сумма годовой прибыли фирмы
Сумма3 - это сумма зарплаты сотрудников фирмы и тд.

это суммы которые вносит сотрудник, заполняются всегда, данные произвольные
Valick
вот как-то так
<?php
$id='';
$mess=$error=array();
// Функция подключения к БД
function co_to_base(){
$dblocation="localhost";
$dbname="f_yuriy";
$dbuser="root";
$dbpasswd="";
$dbcnx=mysql_connect($dblocation,$dbuser,$dbpasswd);
if(!$dbcnx){echo ("<p>Соединение не установлено</p>"); return false;}
mysql_query ("SET NAMES 'utf8'");
if(!mysql_select_db($dbname,$dbcnx)){echo ("<p>База данных не выбрана</p>"); return false;}
return true;
}
// Функция создания БД
function create_base(){
$dblocation="localhost";
$dbname="f_yuriy";
$dbuser="root";
$dbpasswd="";
$dbcnx=mysql_connect($dblocation,$dbuser,$dbpasswd);
if(!$dbcnx){echo ("<p>Соединение не установлено</p>"); return false;}
mysql_query("CREATE DATABASE IF NOT EXISTS ".$dbname." CHARACTER SET utf8 COLLATE utf8_general_ci");
mysql_query ("SET NAMES 'utf8'");
if(!mysql_select_db($dbname,$dbcnx)){echo ("<p>База данных не выбрана</p>"); return false;}
mysql_query("CREATE TABLE IF NOT EXISTS `firm` (
`f_id` INT(8) NOT NULL AUTO_INCREMENT,
`f_pd` DATETIME NOT NULL,
`f_name` VARCHAR(255) NOT NULL,
PRIMARY KEY (f_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"
)
or die ("MySQL error: ".mysql_error());
mysql_query("CREATE TABLE IF NOT EXISTS `sum` (
`s_id` INT(8) NOT NULL AUTO_INCREMENT,
`f_id` INT(8) NOT NULL,
`c_id` INT(8) NULL,
`s_sum` DOUBLE,
`s_pd` DATETIME NOT NULL,
PRIMARY KEY (s_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"
)
or die ("MySQL error: ".mysql_error());
mysql_query("CREATE TABLE IF NOT EXISTS `cat` (
`c_id` INT(8) NOT NULL AUTO_INCREMENT,
`c_pd` DATETIME NOT NULL,
`c_name` VARCHAR(255) NOT NULL,
PRIMARY KEY (c_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;"
)
or die ("MySQL error: ".mysql_error());
return true;
}
// Если требуется создание БД, то создаем её
if(isset($_GET[action])=="crbase"){
if(create_base())
$mess[]="База данных успешно создана";
else
$mess[]="Ошибка создания базы данных";
}
?>
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8">
<
title>Пример страницы</title>
</
head>
<
body>
<
p><a href='?action=crbase'>создать базу данных</a></p>
<?php
// устанавливаем соединение с БД и делаем выборку фирм
if(co_to_base()){
$query="SELECT f_id, f_name FROM `firm` ORDER BY `f_name`";
$res=mysql_query($query);
}else{
exit();
}
// Если форма отправлена, то принимаем и обрабатываем данные
if(isset($_POST[go])){
if(isset($_POST[sum]) && is_array($_POST[sum])){
foreach($_POST[sum] as $key=>$value){
if(!is_numeric($value)) unset($_POST[sum][$key]);
}
}

if(!isset($_POST[sum]) || empty($_POST[sum])) $error[]="Не указана ни одна сумма";
$f_name='';
if(isset($_POST[firm]) && !empty($_POST[firm])){
$f_name=substr(trim($_POST[firm]),0,255);
if(!empty($f_name)){
$query="SELECT `f_id` FROM `firm`
WHERE `f_name` = '"
.mysql_real_escape_string($f_name)."'";
$res2=mysql_query($query) or die(mysql_error());
if(mysql_num_rows($res2) > 0){
$id=mysql_result($res2, 0);
$error[]="Фирма с данным названием уже содержиться в БД";
}else{
$query="INSERT INTO `firm` (`f_pd`,`f_name`)
VALUES(NOW(),'"
.mysql_real_escape_string($f_name)."')";
$res2=mysql_query($query) or die(mysql_error());
if($id=mysql_insert_id()){
$mess[]="Фирма добавлена в базу данных";
}else{
$error[]="Ошибка при добавлении фирмы в БД";
}
}
}
}
else{
if(isset($_POST[fsel]) && !empty($_POST[fsel])){
$id=$_POST[fsel];
if(!empty($id)){
$query="SELECT `f_id` FROM `firm` WHERE `f_id` = $id";
$res2=mysql_query($query) or die(mysql_error());
if($res2){
if(mysql_num_rows($res2) > 0){
$id=mysql_result($res2, 0);
}else{
$error[]="Указанная фирма отсутствует в БД";
}
}
}
}
else{
$error[]="Не введено или не выбрано ни одно название фирмы";
}
}

if(empty($error) && !empty($id)){
if(!empty($_POST[sum])) $sum="$id,NOW(),".implode("),($id,NOW(),",$_POST[sum]);
$query="INSERT INTO `sum` (`f_id`,`s_pd`,`s_sum`)
VALUES(
$sum)";
$res2=mysql_query($query) or die(mysql_error());
if($id=mysql_insert_id()){
$mess[]="Введенные суммы успешно добавлены в БД";
}else{
$error[]="Ошибка при добавлении суммы в БД";
}
}

}


foreach($mess as $v) echo "<p><font color=green>$v</font></p>";
foreach($error as $v) echo "<p><font color=red>$v</font></p>";
echo "<form action='' method='POST'>
<p>Введите название фирмы или выбирите из списка</p>
<p>Новая фирма: <input type='text' name='firm' value='' /></p>
<p>Фирма из БД: "
;
if(mysql_num_rows($res)>0){
echo "<select name='fsel' size='1'>
<option selected value=''>выбирайте</option>"
;
while($m=mysql_fetch_assoc($res)){
echo "<option value='$m[f_id]'>$m[f_name]</option>";
}
}
else{
echo "<select disabled name='fsel' size='1'>
<option selected value=''>Фирмы не найдены</option>"
;
}
echo "</select></p>
<p>Укажите сумму: <input type='text' name='sum[]' value='' /></p>
<p>Укажите сумму: <input type='text' name='sum[]' value='' /></p>
<p>Укажите сумму: <input type='text' name='sum[]' value='' /></p>
<p><input type='submit' name='go' value='Добавить запись в БД' /></p>
</fopm>"
;
?>
</body>
</
html>


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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