سلام
من یک جدول تو بانکم دارم میخام موقع نمایش و گزارش گیری هر بار تعدادی از فیلدهای جدول اصلی (نه همه آنها) رو در یک جدول موقت قرار بدم و نشون بدم.ممنون میشم اگه دوستان نحوه ساختن جدول موقت و انتخاب فیلدها رو نشون بدن.
سلام
من یک جدول تو بانکم دارم میخام موقع نمایش و گزارش گیری هر بار تعدادی از فیلدهای جدول اصلی (نه همه آنها) رو در یک جدول موقت قرار بدم و نشون بدم.ممنون میشم اگه دوستان نحوه ساختن جدول موقت و انتخاب فیلدها رو نشون بدن.
از این برای ساخت جدول موقت استفاده کن
<?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";
?>
درود دوست عزيز
جواب شما رو funpatogh داد و من يه سوال داشتم
ميشه بگي فايده اين كاري كه ميكني چيه؟
تا جایی که من میدونم جدول موقت جدولیه که بعد از ساختش احتیاج به حذفش نیست و در بانک اطلاعاتی ذخیره نمیشه و با قطع ارتباط با سرور خود به خود از بین میره و ساختنش همون طوری که دوستمون در بالا نوشتند هست با این تفاوت که بعد از عبارتCREATE کلمه TEMPORARY رو میگزاریم .
حالابهتره سوالم رو اینطوری بگم -> چطور میشه جدول اصلیم منهای چند فیلد خاص از اون رو در داخل جدول موقتی کپی کنم؟
دستور INSERT با دستور SELECT خیلی خوب ترکیب میشه. مثلا:
INSERT INTO `newTable` (`col1`, `col2`, `col3`) SELECT `col10`, `col5`, `col0` FROM `oldTable`;
ببخشید میشه گفت این اسکریپت آمارگیر تعداد افراد انلاین هم از این روش استفاده کرده؟
<?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"
?>
اینتو table از نوع موقت نیست بلکه اطلاعات مدام در حال delete insert هستند
اتفاقا بنده الان تست کردم و بدون هیچ مشکلی کار کرد
توی قسمت insert نام فیلد های جدول مقصد رو بنویس و توی قسمت select هم اسم فیلد های جدول مبدا رو بنویس که قرار هست مقدارشون خوانده بشه و توی جدول مقصد insert بشوند
البته چون برای select
where و یا limit تعیین نکردیم تمام رکورد های جدول مبدا کپی خواند شد
سلام
توی این آدرس در مورد جدول موقت توضیح داده
http://dev.mysql.com/doc/refman/5.1/...ate-table.html
http://blog.brianhartsock.com/2009/0...ve-your-brain/
آخرین ویرایش به وسیله Shafaei : یک شنبه 17 بهمن 1389 در 17:23 عصر