PDA

View Full Version : سوال: کمک در ایجاد فایل install برای cms



javadth
شنبه 23 دی 1391, 12:11 عصر
سلام من میخواستم برای یه cms فایل نصب بنویسم به این صورت که از طریق config.php که به صورت دستی تکمیل میشه به دیتابیس وصل بشه و فایل sql رو از پوشه ای به درون دیتایس import کنه

mahmod2000
شنبه 23 دی 1391, 15:10 عصر
برای جه cms میخواید این کار رو بکنید؟؟ از cms آماده استفاده میکنید؟

ravand
شنبه 23 دی 1391, 16:53 عصر
این کار رو بکن وقتی این فایل رو اجرا کنی دیتابیس و فیلد ها و جدولت ایجاد میشه.

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// Create database
if (mysql_query("CREATE DATABASE `testi` DEFAULT CHARACTER SET utf8 COLLATE
utf8_persian_ci",$con))
{
echo "Database created";
}
else
{
echo "Error creating database: " . mysql_error();
}
// Create table
mysql_select_db("testi", $con);
$sql = "CREATE TABLE Persons
(
`FirstName` VARCHAR( 21 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL ,
`LastName` VARCHAR( 21 ) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
)ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_persian_ci";
mysql_query($sql,$con);
mysql_close($con);
?>

javadth
شنبه 23 دی 1391, 20:10 عصر
این کار رو بکن وقتی این فایل رو اجرا کنی دیتابیس و فیلد ها و جدولت ایجاد میشه.

n);
?>

توی این فایل باید include = "config.php" رو هم قرار بدم یعنی از طریق فایل کانفیق وصل میشه ؟

ن بیشتر میخوام خود فایل sql رو که آماده کردم ایمپورت کنه

ravand
شنبه 23 دی 1391, 20:19 عصر
http://barnamenevis.org/showthread.php?337421-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1-%D8%A7%DB%8C%D9%85%D9%BE%D9%88%D8%B1%D8%AA-SQL&highlight=import+to+sql+php

javadth
یک شنبه 24 دی 1391, 10:52 صبح
<?php
include "admin/config.php";
mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db("$dbname") or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
$queries = array();
$lines = file('db/cms.sql');
echo $lines[11];
$flag = false;
$current = 0;
foreach($lines as $line) {
$line = trim($line);
if(!$flag && !empty($line) && (strtoupper(substr($line, 0, 4)) == 'DROP' || in_array(strtoupper(substr($line, 0, 6)), array('CREATE', 'INSERT')))) {
$flag = true;
$queries[$current] = '';
}
if($flag) {
$queries[$current] .= $line.PHP_EOL;
if(substr($line, -1) == ';') {
$flag = false;
$current++;
}
}
}
foreach($queries as $key => $query) {
if(empty($query)) {
unset($queries[$key]);
}
}
$queries = array_values($queries);
foreach($queries as $key => $query) {
echo $key.'<pre>'.$query.'</pre>'.PHP_EOL;
mysql_query($query);
}
?>

من از این فایل استفاده کردم ولی بعد از import کل فایل sql رو نشون میده

من میخوام که مثلا متنی رو نشون بده که مثلا نصب انجام شد به جای نشان دادن محتوی فایل sql

ravand
یک شنبه 24 دی 1391, 10:56 صبح
من از این فایل استفاده کردم ولی بعد از import کل فایل sql رو نشون میده

من میخوام که مثلا متنی رو نشون بده که مثلا نصب انجام شد به جای نشان دادن محتوی فایل sql
شما تا حالا php کار نکردید؟
خب به جای چیزی که داخل echo گذاشته اون متنی که میخوای بنویس.

javadth
یک شنبه 24 دی 1391, 13:07 عصر
شما تا حالا php کار نکردید؟
خب به جای چیزی که داخل echo گذاشته اون متنی که میخوای بنویس.

والا php رو خیلی ابتدایی بلدم
فیلم های اموزشیش رو دانلود کردم ولی وقت دیدنش رو ندارم
الان html , css یه چیزایی میدونم
echo 'نصب با موفقیت انجام شد';
نوشتم ولی بازم زیر این نوشته محتوی sql رو نشون میده

ravand
یک شنبه 24 دی 1391, 13:16 عصر
اینم بردار:

echo $lines[11];
اینم یه کتاب ساده برای یادگیری php .
http://barnamenevisi.blogsky.com/1391/01/06/post-96/

javadth
یک شنبه 24 دی 1391, 14:30 عصر
اینم بردار:

echo $lines[11];
اینم یه کتاب ساده برای یادگیری php .
http://barnamenevisi.blogsky.com/1391/01/06/post-96/

این خطی که گفتید رو هون اول با echo 'نصب با موفقیت انجام شد'; جایگزین کردم اما هنوزم مشکل رفع نشده و محتوی فایل sql رو هم نشون میده

ravand
یک شنبه 24 دی 1391, 14:46 عصر
وقتی شما با این دستور به دیتابیس و سرور وصل میشی

mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db("$dbname") or die('Database error');
دیگه اینو نیاز نداری:

include "admin/config.php";

javadth
دوشنبه 25 دی 1391, 11:42 صبح
وقتی شما با این دستور به دیتابیس و سرور وصل میشی

mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db("$dbname") or die('Database error');
دیگه اینو نیاز نداری:

include "admin/config.php";


پس چطوری اطلاعات رو در جای خودشون قرار میده ؟
\

ravand
دوشنبه 25 دی 1391, 12:46 عصر
این خط رو شما از کجا اوردی؟

include "admin/config.php";
شما به این آدرس برو:
http://localhost/phpmyadmin
و در قسمت MySQL connection collation: گزینه ی utf_persian_ci رو انتخاب کن.
بعد پایینش در قسمت Create new database نام دیتابیست رو ایجاد کن مثلا counter . بعد جلوش بازم گزینه ی utf_persian_ci رو انتخاب کن تا با فارسی سازگار باشه.
بعد دکمه ی create رو بزن. و این فایل sql رو با نام counter.sql بذار توی پوشه ی www البته اگر برنامه ی wamp داری.98378
بعد دستور زیر رو هم با نام مثلا tes.php ذخیره کن و اجرا کن

<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('counter');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
$queries = array();
$lines = file('counter.sql');

$flag = false;
$current = 0;
foreach($lines as $line) {
$line = trim($line);
if(!$flag && !empty($line) && (strtoupper(substr($line, 0, 4)) == 'DROP' || in_array(strtoupper(substr($line, 0, 6)), array('CREATE', 'INSERT')))) {
$flag = true;
$queries[$current] = '';
}
if($flag) {
$queries[$current] .= $line.PHP_EOL;
if(substr($line, -1) == ';') {
$flag = false;
$current++;
}
}
}
foreach($queries as $key => $query) {
if(empty($query)) {
unset($queries[$key]);
}
}
$queries = array_values($queries);
foreach($queries as $key => $query) {

mysql_query($query);

}
echo "عملیات با موفقیت انجام شد.";
?>
من به ساده ترین صورت برات نوشتم . دیگه فکر نمیکنم مشکلی داشته باشی.
نام و ادرس فایل رو هم باید اینجا بنویسی:

$lines = file('counter.sql');