PDA

View Full Version : سوال: ایجاد جدول



amatur_barnamenevis
شنبه 04 شهریور 1391, 14:50 عصر
سلام
من میخوام مقدار یک فیلد رو بگیرم و بر اساس اون یک جدول با نام وارد شده بسازم کدی که مینویسم اینه


$table="CREATE TABLE '$name'(id int AUTO_INCREMENT,PRIMARY KEY(id),ques VARCHAR(100),a VARCHAR(30),b VARCHAR(30),c VARCHAR(30),
d VARCHAR(30),
answ VARCHAR(2),gerayesh VARCHAR(15) )";
$success=mysql_query($table);


ولی جواب نمیده اسم جدول توی متغیر name هست باید چطور بنویسم که قبول بکنه

khanlo.javid
شنبه 04 شهریور 1391, 16:48 عصر
مقادیر رو چک کن و ببین اصلا داخل متغییرت مقداری که از فیلد میگیری قرار میگیره یا نه .

pejman_view
شنبه 04 شهریور 1391, 17:54 عصر
سلام

این کوئری را تست کردم نباید مشکلی داشته باشد:


CREATE TABLE $name (
id INT AUTO_INCREMENT,
PRIMARY KEY(id),
ques VARCHAR(100),
a VARCHAR(30),
b VARCHAR(30),
c VARCHAR(30),
d VARCHAR(30),
answ VARCHAR(2),
gerayesh VARCHAR(15)
)

با آرزوی موفقیت

amatur_barnamenevis
شنبه 04 شهریور 1391, 23:04 عصر
اون مدلی که من نوشتم از نظر syntax درسته؟؟؟
یعنی به صورت '$name'
آره مقدار قرار میگیره من وقتی همین کد رو بدون متغیر name مینویسم اجرا میکنه

amatur_barnamenevis
یک شنبه 05 شهریور 1391, 00:02 صبح
<?php

$name=$_POST['txt'];
$gerayesh=$_POST['gr'];

include("connect.php");
$connect = mysql_connect($db_host, $db_user, $db_pass) or die('خطا در اتصال به پایگاه داده!');
$db_select=mysql_select_db("test");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}


$table="CREATE TABLE '$name'(id int AUTO_INCREMENT,ques VARCHAR(100),a VARCHAR(30),b VARCHAR(30),c VARCHAR(30),d VARCHAR(30),
answ VARCHAR(2),gerayesh VARCHAR(15) )";
$success=mysql_query($table);

if($success){
mysql_query("ALTER TABLE '$name' DEFAULT CHARACTER SET utf8 COLLATE utf8_persian_ci;");
$run=mysql_query("INSERT INTO info(course,gerayesh) values('$name','$gerayesh')");
if($run){
echo "insert";
}
else{
echo "notinsert";}
}
else{
echo "notinsert";}
?>

این کد منه وقتی میخوام جای نام جدول متغیر رو بذارم اجرا نمیکنه

amatur_barnamenevis
یک شنبه 05 شهریور 1391, 01:11 صبح
بزارید راحت تر بگم بلکه کدش رو بهم بگین
میخوام جدول بسازم با اسم فارسی یعنی کاربر اسمی رو که وارد کرد (به صورت فارسی) یه جدول با همون اسم بسازه
اصلا میشه اسم جدول رو فارسی گذاشت با php یا نه؟
خیلی گیر کردم نمیدونم چی کار کنم

pejman_view
یک شنبه 05 شهریور 1391, 11:20 صبح
سلام

چرا نشه ! همه چیز می شه... اینم کدش

<?php

$name='انگليسي';
$gerayesh='گرايش';


$connect = mysqli_connect('localhost', 'root', '','test') or die('خطا در اتصال به پايگاه داده!');
mysqli_query($connect, "SET CHARACTER SET utf8");
mysqli_query($connect, "SET NAMES 'utf8'");
mysqli_query($connect,"SET SESSION collation_connection = 'utf8_persian_ci'");



$table="CREATE TABLE `test`.`$name`(id int AUTO_INCREMENT,PRIMARY KEY(id), ques VARCHAR(100),a VARCHAR(30),b VARCHAR(30),c VARCHAR(30),d VARCHAR(30),
answ VARCHAR(2),gerayesh VARCHAR(15) )";
$success=mysqli_query($connect,$table) or die (mysqli_error($connect));

if($success){
echo $name."<br />";
mysqli_query($connect,"ALTER TABLE `test`.`$name` DEFAULT CHARACTER SET utf8 COLLATE utf8_persian_ci;") or die (mysqli_error($connect));;
// $run=mysqli_query($connect,"INSERT INTO info(course,gerayesh) values('$name','$gerayesh')") or die (mysqli_error($connect));;
}else{
echo "notinsert";
}

?>

amatur_barnamenevis
یک شنبه 05 شهریور 1391, 14:17 عصر
دمت گرم جواب داد ولی نوشته ها فارسی نیست
توی جدول info هم فارسی نوشته نمیشه
من از wamp 2.2 استفاده می کنم
همه چیز درسته فقط نوشته ها به هم ریختست فارسی نیست اگه بخوام این کد رو بنویسم باید چه طوری بنویسم؟
ENGINE=MyISAM

pejman_view
یک شنبه 05 شهریور 1391, 17:54 عصر
سلام

مطمئن شو که صفحه PHP را با اینکود UTF-8 Without BOM ذخیره کنید.
موتور تمامی جداول بصورت پیش فرض بر روی MyISAM تنظیم شده اما کافی است کوئری را بصورت زیر تغییر دهید:

<?php

$name='انگليسي';
$gerayesh='گرايش';


$connect = mysqli_connect('localhost', 'root', '','test') or die('خطا در اتصال به پايگاه داده!');
mysqli_query($connect, "SET CHARACTER SET utf8");
mysqli_query($connect, "SET NAMES 'utf8'");
mysqli_query($connect,"SET SESSION collation_connection = 'utf8_persian_ci'");



$table="CREATE TABLE `test`.`$name`(id int AUTO_INCREMENT,PRIMARY KEY(id), ques VARCHAR(100),a VARCHAR(30),b VARCHAR(30),c VARCHAR(30),d VARCHAR(30),
answ VARCHAR(2),gerayesh VARCHAR(15) ) ENGINE=MyISAM";
$success=mysqli_query($connect,$table) or die (mysqli_error($connect));

if($success){
echo $name."";
mysqli_query($connect,"ALTER TABLE `test`.`$name` DEFAULT CHARACTER SET utf8 COLLATE utf8_persian_ci;") or die (mysqli_error($connect));;
// $run=mysqli_query($connect,"INSERT INTO info(course,gerayesh) values('$name','$gerayesh')") or die (mysqli_error($connect));;
}else{
echo "notinsert";
}

?>

amatur_barnamenevis
یک شنبه 05 شهریور 1391, 22:30 عصر
مطمئن شو که صفحه PHP را با اینکود UTF-8 Without BOM ذخیره کنید.
دستورش چه طوریه؟

pejman_view
دوشنبه 06 شهریور 1391, 14:52 عصر
سلام

این توضیحات را بخوانید:
http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576420&viewfull=1#post1576420

با آرزوی موفقیت