PDA

View Full Version : ساخت نام دیتابیس به دلخواه کاربر



soroushcompany
سه شنبه 31 فروردین 1395, 20:13 عصر
با سلام خدمت شما دوستان گرامی
من تازه کار هستم و می خوام تازه php رو شروع کنم و یک سوال داشتم.
دو فیلد به نام db1 و db2 با html طراحی کردیم. کاربر زمانی که این دو فیلد را به نام های دلخواه تایید میکند ، درون phpmyadmin ما به همان نام ها دیتابیس ساخته میشود.
آیا امکانش هست راهنماییم کنید که چگونه php آن را بنویسم؟


با تشکر

Farshid007
چهارشنبه 01 اردیبهشت 1395, 05:39 صبح
CREATE DATABASE dbname;


این ساده ترین کد SQL برای ساخت یک دیتا بیس هست
کد وصل شدن به mysql و اجرای کوئری:


$dbName=$_POST['db'];
$db=new MySQLi();
$db->connect('localhost','root','');
$db->query("CREATE DATABASE $dbName");

zinat1356
چهارشنبه 01 اردیبهشت 1395, 05:51 صبح
سلام


فیلدها db1, db2 را از request بخون
بعد با دستورات mysql دیتا بیس ها را بساز اول باید با دستور mysql_connect به دیتا بیس وصل بشی بعدش query می زنی query شما مثلا برای دیتابیس اول میشهcreate database db1

soroushcompany
چهارشنبه 01 اردیبهشت 1395, 06:12 صبح
با تشکر شما دوست گرامی
من تا این قسمت کد رو نوشتم و دیتابیس ساخته میشه ولی میخوام انتخاب نام دیتابیس را به کاربر واگذار کنم فقط نمی دونم چه جوری وقتی مثلا تو فیلد اول نوشتم ali دیتابیس ali ساخته بشه.

140067





CREATE DATABASE dbname;


این ساده ترین کد SQL برای ساخت یک دیتا بیس هست
کد وصل شدن به mysql و اجرای کوئری:


$dbName=$_POST['db'];
$db=new MySQLi();
$db->connect('localhost','root','');
$db->query("CREATE DATABASE $dbName");

Farshid007
چهارشنبه 01 اردیبهشت 1395, 11:35 صبح
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>DB CREATOR</title>
</head>
<body>
<?PHP
if(isset($_REQUEST['submit']))
{
//form submited
$db1=$_POST['db_name_1'];
$db2=$_POST['db_name_2'];
if(!empty($db1)&&!empty($db2))
{
//form validated
$db=new MySQLi();
$db->connect('localhost','root','') or die('erro in mysql connection');
$query="CREATE DATABASE $db1;CREATE DATABASE $db2;";
$db->query($query) or die('error in run query');
echo $db1.' AND '.$db2.' successfully created,<br>';
}
else
{
echo 'fill the form completed';
}
}
?>
<form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>DB 1: <input type="text" name="db_name_1"/></p>
<p>DB 2: <input type="text" name="db_name_2"/></p>
<input type="submit" name="submit" value="create"/>

</form>
</body>
</html>


فقط تستش نکردم
خودتون زحمت تستش رو بکشید اگه مشکلی داشت بگید

soroushcompany
چهارشنبه 01 اردیبهشت 1395, 12:42 عصر
دمت گرم فرشید جان.
خیلی زحمت کشیدی
کلیات کار به نظرم همین باشه ولی من الان تست کردم تو خط 18 ایراد میگیره و پس از دکمه تایید پیغام erro in mysql connection میده. ممنون میشم راهنماییم کنی. با تشکر






<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>DB CREATOR</title>
</head>
<body>
<?PHP
if(isset($_REQUEST['submit']))
{
//form submited
$db1=$_POST['db_name_1'];
$db2=$_POST['db_name_2'];
if(!empty($db1)&&!empty($db2))
{
//form validated
$db=new MySQLi();
$db->connect('localhost','root','') or die('erro in mysql connection');
$query="CREATE DATABASE $db1;CREATE DATABASE $db2;";
$db->query($query) or die('error in run query');
echo $db1.' AND '.$db2.' successfully created,<br>';
}
else
{
echo 'fill the form completed';
}
}
?>
<form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>DB 1: <input type="text" name="db_name_1"/></p>
<p>DB 2: <input type="text" name="db_name_2"/></p>
<input type="submit" name="submit" value="create"/>

</form>
</body>
</html>


فقط تستش نکردم
خودتون زحمت تستش رو بکشید اگه مشکلی داشت بگید

Farshid007
چهارشنبه 01 اردیبهشت 1395, 13:56 عصر
خط 18 اون قسمت or die زو پاکش کن
نمیدونم چرا با این که کانکت میشه ولی die میکنه:متعجب:

یعنی اینجوریش میشه:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>DB CREATOR</title>
</head>
<body>
<?PHP
if(isset($_REQUEST['submit']))
{
//form submited
$db1=$_POST['db_name_1'];
$db2=$_POST['db_name_2'];
if(!empty($db1)&&!empty($db2))
{
//form validated
$db=new MySQLi();
$db->connect('localhost','root','');
$query="CREATE DATABASE $db1;";
$db->query($query) or die('erro in run query');
$query="CREATE DATABASE $db2;";
$db->query($query) or die('erro in run query');
echo $db1.' AND '.$db2.' successfully created,<br>';


}
else
{
echo 'fill the form completed';
}
}
?>
<form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>DB 1: <input type="text" name="db_name_1"/></p>
<p>DB 2: <input type="text" name="db_name_2"/></p>
<input type="submit" name="submit" value="create"/>

</form>
</body>
</html>




البته ی تغییراتی هم تو کوئری ها دادم
اینو خودم تست کردم درست کار میکنه

soroushcompany
چهارشنبه 01 اردیبهشت 1395, 14:25 عصر
آقا دمت گرم .تست کردم جواب گرفتم. :تشویق:
ایشالله بتونیم جبران کنیم.
فقط یه سوال اینکه بخوام php رو شروع کنم به نظرت از چه مرجعی شروع کنم؟ کتاب یا سی دی آموزشی خواصی میشناسی که معرفی کنی تا یاد بگیرم؟
ممنون :چشمک:




خط 18 اون قسمت or die زو پاکش کن
نمیدونم چرا با این که کانکت میشه ولی die میکنه:متعجب:

یعنی اینجوریش میشه:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>DB CREATOR</title>
</head>
<body>
<?PHP
if(isset($_REQUEST['submit']))
{
//form submited
$db1=$_POST['db_name_1'];
$db2=$_POST['db_name_2'];
if(!empty($db1)&&!empty($db2))
{
//form validated
$db=new MySQLi();
$db->connect('localhost','root','');
$query="CREATE DATABASE $db1;";
$db->query($query) or die('erro in run query');
$query="CREATE DATABASE $db2;";
$db->query($query) or die('erro in run query');
echo $db1.' AND '.$db2.' successfully created,<br>';


}
else
{
echo 'fill the form completed';
}
}
?>
<form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">
<p>DB 1: <input type="text" name="db_name_1"/></p>
<p>DB 2: <input type="text" name="db_name_2"/></p>
<input type="submit" name="submit" value="create"/>

</form>
</body>
</html>




البته ی تغییراتی هم تو کوئری ها دادم
اینو خودم تست کردم درست کار میکنه

Farshid007
چهارشنبه 01 اردیبهشت 1395, 14:29 عصر
کتاب و سی دی و دی وی دیو اینجوری چیزا که تو بازار پره
خود نت رو هم که زیرو رو کنید بازم پره (کتاب های پی دی اف یا سایت هایی شبیه به W3schools )
من خودم بهترین منبع رو http://www.w3schools.com/W3Schools میدونم
اما اگه تازه وارد هستید و از برنامه نویسی زیاد سر در نمی ارید بهتره یک کتاب مرجع به زبان فارسی پیدا کنید
تو همین تالار در این رابطه اطلاعات زیادی هست