PDA

View Full Version : مقاله: ساختن جدول موقت



fatahyegane
جمعه 05 آذر 1389, 21:42 عصر
سلام
من یک جدول تو بانکم دارم میخام موقع نمایش و گزارش گیری هر بار تعدادی از فیلدهای جدول اصلی (نه همه آنها) رو در یک جدول موقت قرار بدم و نشون بدم.ممنون میشم اگه دوستان نحوه ساختن جدول موقت و انتخاب فیلدها رو نشون بدن.

funpatogh
شنبه 06 آذر 1389, 00:25 صبح
از این برای ساخت جدول موقت استفاده کن



<?php
$locahost="localhost";
$user="root";
$pass="";
$db="test";
$table="report";
$link=mysql_connect($localhost,$user,$pass)or die(mysql_error());
mysql_select_db($db);
$sql="CREATE TABLE `$table` (
id int(10) not null auto_increment,
Name varchar(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date,
primary key(id)
)";
$result=mysql_query($sql,$link)or die(mysql_error());
if($result){
echo "$table create";
}
?>


از این هم برای حذفش


<?php
$locahost="localhost";
$user="root";
$pass="";
$db="test";
$table="report";
$link=mysql_connect($localhost,$user,$pass)or die(mysql_error());
mysql_select_db($db);


$del="drop table if exists `$table`";
$result=mysql_query($del,$link)or die(mysql_error());
if($result)
echo "$table deleted";
?>

UnnamE
شنبه 06 آذر 1389, 00:44 صبح
درود دوست عزيز
جواب شما رو funpatogh داد و من يه سوال داشتم
ميشه بگي فايده اين كاري كه ميكني چيه؟

fatahyegane
شنبه 06 آذر 1389, 02:09 صبح
تا جایی که من میدونم جدول موقت جدولیه که بعد از ساختش احتیاج به حذفش نیست و در بانک اطلاعاتی ذخیره نمیشه و با قطع ارتباط با سرور خود به خود از بین میره و ساختنش همون طوری که دوستمون در بالا نوشتند هست با این تفاوت که بعد از عبارتCREATE کلمه TEMPORARY رو میگزاریم .
حالابهتره سوالم رو اینطوری بگم -> چطور میشه جدول اصلیم منهای چند فیلد خاص از اون رو در داخل جدول موقتی کپی کنم؟

امیـرحسین
شنبه 06 آذر 1389, 17:53 عصر
دستور INSERT با دستور SELECT خیلی خوب ترکیب میشه. مثلا:
INSERT INTO `newTable` (`col1`, `col2`, `col3`) SELECT `col10`, `col5`, `col0` FROM `oldTable`;

ravand
شنبه 06 آذر 1389, 20:56 عصر
ببخشید میشه گفت این اسکریپت آمارگیر تعداد افراد انلاین هم از این روش استفاده کرده؟

<?php
//دو تا فیلد داریم با نام های ip datum
//و جدول هم online
mysql_connect("localhost","root","") or die();
mysql_select_db("mysql_database") or die();

$datume= date("U");
$datumex=$datume-600;

$tojvip=$_SERVER["REMOTE_ADDR"];

$query1 = "DELETE FROM online where ip='$tojvip'";
$result1 = mysql_query($query1) or die();

$query2 = "DELETE FROM online where datum<$datumex";
$result2 = mysql_query($query2) or die();


$query = "INSERT into online VALUES ('$tojvip','$datume')";
$result = mysql_query($query) or die();

$resultkolk = mysql_query("SELECT * FROM online");
$num_rowskolk = mysql_num_rows($resultkolk);


echo "اعضاء آنلاين: $num_rowskolk"
?>
:متفکر:

funpatogh
شنبه 06 آذر 1389, 21:18 عصر
اینتو table از نوع موقت نیست بلکه اطلاعات مدام در حال delete insert هستند

fatahyegane
یک شنبه 07 آذر 1389, 23:23 عصر
دستور INSERT با دستور SELECT خیلی خوب ترکیب میشه. مثلا:
INSERT INTO `newTable` (`col1`, `col2`, `col3`) SELECT `col10`, `col5`, `col0` FROM `oldTable`;

دوست من این کدی رو که داددی تست کردم جواب نداد اگه لطف کنی راهنمایی کنی ممنون میشم.

funpatogh
دوشنبه 08 آذر 1389, 00:16 صبح
اتفاقا بنده الان تست کردم و بدون هیچ مشکلی کار کرد
توی قسمت insert نام فیلد های جدول مقصد رو بنویس و توی قسمت select هم اسم فیلد های جدول مبدا رو بنویس که قرار هست مقدارشون خوانده بشه و توی جدول مقصد insert بشوند
البته چون برای select
where و یا limit تعیین نکردیم تمام رکورد های جدول مبدا کپی خواند شد

Shafaei
یک شنبه 17 بهمن 1389, 16:50 عصر
سلام
توی این آدرس در مورد جدول موقت توضیح داده
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
http://blog.brianhartsock.com/2009/02/04/using-mysql-temporary-tables-to-save-your-brain/

$ M 3 H R D A D $
یک شنبه 17 بهمن 1389, 17:07 عصر
create view