PDA

View Full Version : insert در دو جدول



sara.ff
پنج شنبه 17 اردیبهشت 1394, 22:20 عصر
سلام
من میخوام توی دو تا جدول که با هم ارتباط دارند فیلد هایی رو insert کنم میخواستم از mysqli_insert_id($con); استفاده کنم اما 0 بر میگردونه.
میشه توضیح بدید که چطور باید توی دوتا جدول insert کنم؟

hamedarian2009
پنج شنبه 17 اردیبهشت 1394, 23:09 عصر
سلام بهتر بود ساختاز جدولتو هم میزاشتی
اگه ارتباطت یک به چنده میتونی به این صورت انجام بدی شبیه این مثال :


$query = "INSERT INTO users (column1, column2)
VALUES('test', 'test');
INSERT INTO profiles (userid, column1, column2)
VALUES(LAST_INSERT_ID(),'test', 'test');";

sara.ff
جمعه 18 اردیبهشت 1394, 09:08 صبح
ممنون از پاسختون
با این query که گفتید امتحان کردم و نشد
جدول هام به این صورته:
جدول کارفرما
karfarma= karfarma_id,name,family,jensiat,email,phone,userna me,password
و یک جدول دیگه هم هست به اسم jobs که مربوط به فرصت شغلی که این کارفرما ایجاد کرده، karfarma_id توی جدول کارفرما کلید اصلی و توی جدول jobs کلید خارجی ایندکس کردم
جدول jobs به این صورت هست:
jobs=job_id,karfarma_id,job_name,requierd_field,re quired_age,sabeghekar,ostan,shahrestan

و query رو به این صورت نوشتم :



mysql_query("INSERT INTO `usc`.`karfarma` (`name`, `family`, `gender`, `email`, `phone`, `username`, `password`)
VALUES ('$name', '$family', '$gender', '$email', '$phone', '$username', '$password');

INSERT INTO `usc`.`jobs` ( `karfarmaid`, `job_name`, `required_field`, `required_madrak`, `required_age`, `sabeghekar`, `ostan`, `shahrestan`)
VALUES ('LAST_INSERT_ID()', '$job_name', '$required_field, '$required_madrak', '$required_age', '$sabeghekar, $ostan', $shahrestan');");



اما توی هیچکدوم از جداول چیزی درج نمیشه

hamedarian2009
جمعه 18 اردیبهشت 1394, 09:49 صبح
تابع LAST_INSERT_ID رو نباید داخل کوتیشن بزاری به این صورت بنویس اگه اروری میده بزار


mysql_query("INSERT INTO `usc`.`karfarma` (`name`, `family`, `gender`, `email`, `phone`, `username`, `password`)
VALUES ('$name', '$family', '$gender', '$email', '$phone', '$username', '$password');

INSERT INTO `usc`.`jobs` ( `karfarmaid`, `job_name`, `required_field`, `required_madrak`, `required_age`, `sabeghekar`, `ostan`, `shahrestan`)
VALUES (LAST_INSERT_ID(), '$job_name', '$required_field, '$required_madrak', '$required_age', '$sabeghekar, $ostan', $shahrestan');") or die(mysql_error());

sara.ff
جمعه 18 اردیبهشت 1394, 10:20 صبح
الان این ارور رو میده

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
'INSERT INTO `usc`.`jobs` ( `karfarmaid`, `job_name`, `required_field`, `required' at line 4

hamedarian2009
جمعه 18 اردیبهشت 1394, 11:49 صبح
دقت کنید برای دستور دوم برای مقدارها کوتیشن هارو درست نزاشتین


mysql_query("INSERT INTO `usc`.`karfarma` (`name`, `family`, `gender`, `email`, `phone`, `username`, `password`)
VALUES ('$name', '$family', '$gender', '$email', '$phone', '$username', '$password');

INSERT INTO `usc`.`jobs` ( `karfarmaid`, `job_name`, `required_field`, `required_madrak`, `required_age`, `sabeghekar`, `ostan`, `shahrestan`)
VALUES (LAST_INSERT_ID(), '$job_name', '$required_field', '$required_madrak', '$required_age', '$sabeghekar', '$ostan', '$shahrestan');") or die(mysql_error());

sara.ff
جمعه 18 اردیبهشت 1394, 16:36 عصر
ممنون از راهنماییتون اما حتی وقتی کوتیشن ها رو کامل درست کردم بازم چیزی ثبت نمیشه

reza_alie
جمعه 18 اردیبهشت 1394, 16:49 عصر
سلام کدی رو که نوشتین رو کامل بذارین تا چک کنیم

sara.ff
جمعه 18 اردیبهشت 1394, 17:13 عصر
من دارم با اسمارتی پروژه ام رو انجام میدم، کد قسمتی که به جداول connect میشه توی header.php نوشته شده و توی این صفحه include کردم
کدی که توی این صفحه نوشتم این هست، ممنون که وقت میگذارید :)

<?php
include("header.php");
include_once('jdf.php');
$smarty->assign("template","karfarma-register.tpl");
$name=$_POST['name'];
$family=$_POST['family'];
$gender=$_POST['gender'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$username=$_POST['username'];
$password=$_POST['password'];
$job_name=$_POST['job_name'];
$required_field=$_POST['required_field'];
$required_madrak=$_POST['required_madrak'];
$required_age=$_POST['required_age'];
$sabeghekar=$_POST['sabeghekar'];
$ostan=$_POST['ostan'];
$shahrestan=$_POST['shahrestan'];


$smarty->assign("name",$name);
$smarty->assign("family",$family);
$smarty->assign("gender",$gender);
$smarty->assign("email",$email);
$smarty->assign("phone",$phone);
$smarty->assign("username",$username);
$smarty->assign("password",$password);

$smarty->assign("job_name",$job_name);
$smarty->assign("required_field",$required_field);
$smarty->assign("required_madrak",$required_madrak);
$smarty->assign("required_age",$required_age);
$smarty->assign("sabeghekar",$sabeghekar);
$smarty->assign("ostan",$ostan);
$smarty->assign("shahrestan",$shahrestan);


mysql_query("INSERT INTO `usc`.`karfarma` (`name`, `family`, `gender`, `email`, `phone`, `username`, `password`)
VALUES ('$name', '$family', '$gender', '$email', '$phone', '$username', '$password');

INSERT INTO `usc`.`jobs`(`karfarmaid`, `job_name`, `required_field`, `required_madrak`, `required_age`, `sabeghekar`, `ostan`, `shahrestan`)
VALUES (LAST_INSERT_ID(), '$job_name', '$required_field', '$required_madrak', '$required_age', '$sabeghekar', '$ostan', '$shahrestan');" or die(mysql_error()));


$smarty->display("base.tpl");
?>

reza_alie
جمعه 18 اردیبهشت 1394, 17:21 عصر
در خط 41 ابتدا خط عبارت mysql_query()رو تایپ کنید ببنید جواب می ده یعنی به صورت خط 38 اصلاح کن


mysql_query("your_query");

sara.ff
جمعه 18 اردیبهشت 1394, 17:28 عصر
وقتی اینکارو میکنم و query دوم رو توی mysql_query جدا مینویسم، فقط در جدول کارفرما درج میشه، توی جدول jobs هیچ چیز درج نمیشه
انگا که اصلا LAST_INSERT_ID() کار نمیکنه :| و مشکل با این تابع هست

reza_alie
شنبه 19 اردیبهشت 1394, 10:05 صبح
ابتدا LAST_INSERT_ID() رو بریز داخل متغیر ببین اصلا چیه به خودش می گیره یا نه اگه کار نکرد با یک تابع دیگه کار کن
به این سایت ها یک سری
http://stackoverflow.com/questions/3837990/last-insert-id-mysql
http://php.net/manual/en/function.mysql-insert-id.php
http://www.w3schools.com/php/php_mysql_insert_lastid.asp