Инсталация на бд с php

aquafresh

Registered
Как да направя да се инсталира бд като в страницата се посочва дб пас, username, база и т.н... Като всяка една готова система
 
Извинявам се за преди малко :)
<?php if (!isset($_POST['install'])) { ?>
<form action="" method="post">
Хост <input type="text" name="db_host" value="" /> <br />
Потр. име <input type="text" name="db_user" value="" /> <br />
Парола <input type="password" name="db_pass" value="" /> <br />
База <input type="text" name="db_table" value="" /> <br />
Префикс <input type="text" name="db_prefix" value="" /> <br />
<input type="submit" name="install" value="" /> </form>
<?php } else {
# тук вземаш данните от формата
$db_host = htmlspecialchars(addslashes($_POST['db_host']));
$db_user = htmlspecialchars(addslashes($_POST['db_user']));
$db_pass = htmlspecialchars(addslashes($_POST['db_pass']));
$db_table = htmlspecialchars(addslashes($_POST['db_table']));
$db_prefix = htmlspecialchars(addslashes($_POST['db_prefix']));
if (($db_host && $db_user && $db_pass && $db_table && $db_prefix) != NULL) {
if (mysql_connect($db_host,$db_user,$db_pass) && mysql_select_db($db_table)) {
# тук трябва вече да си преработиш заявката , както на тебе ти е удобно
$sql = mysql_query("CREATE TABLE `".$db_prefix."users` (
`id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(20) NOT NULL UNIQUE,
`email` VARCHAR(50) NOT NULL UNIQUE,
`neshto` ENUM('1','2') NOT NULL DEFAULT '1'
);")or die(mysql_error());
# тук може да си допълниш колкото иксаш заявки , като не забравяш точката (.)
$sql .= mysql_query("CREATE TABLE `".$db_prefix."stats` (
`id` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(20) NOT NULL UNIQUE,
`email` VARCHAR(50) NOT NULL UNIQUE,
`neshto` ENUM('1','2') NOT NULL DEFAULT '1'
);")or die(mysql_error());
$result = ($sql) ? "Всичко мина успешно" : "Възникна някаква грешка"; //
echo $result;
}
else {
echo " Не мога да се свържа с базата данни!<br />";
}
}
else {
echo " Моля ,върнете се и попълнете всички полета!<br />";
}
}
?>
 
Не става.. дава ми няква грешка.
Ето ми бд-то

Код:
CREATE TABLE `banners` (
  `id` int(11) NOT NULL,
  `img` varchar(255) NOT NULL,
  `href` varchar(255) NOT NULL,
  `impressions` int(11) NOT NULL default '0',
  `clicks` int(11) NOT NULL default '0',
  `size` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
  `allowed` int(11) NOT NULL,
  `contactm` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
  )ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `admin` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32)  NOT NULL,
  `password` varchar(32) NOT NULL,
  `email` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Ще го направиш ли както трябва.И също да те питам да създава конфиг файл.. настроен :roll:
ПС: този префикс за какво е? пътя до папката?
 
Префикса се ползва в началото на имената на базата данни.
Не просто users , а $prefix_users , а самия префикс представлява
$prefix = "neshto_";
Добавил съм една функцийка , за създаването на файла config.php
<?php
function write_config($h,$u,$ps,$t,$p) {
$file = fopen('config.php','w');
$text = "<?php\n\n//Настройки на базата данни\n\n";
$text .= "\$dbhost = \"".$h."\"\n\$dbuser = \"".$u."\"\n\$dbpass = \"".$ps."\"\n\$dbtable = \"".$t."\"\n\$dbprefix = \"".$p."\"\n";
$text .= "\nmysql_connect(\$dbhost,\$dbuser,\$dbpass)or die(mysql_error());\nmysql_select_db(\$dbtable)or die(mysql_error());\n//Край на настройките\n\n?>";
fwrite($file,$text);
fclose($file);
return "Всичко мина по мед и масло :)";
}
if (!isset($_POST['install'])) { ?>
<form action="" method="post">
Хост <input type="text" name="db_host" value="" /> <br />
Потр. име <input type="text" name="db_user" value="" /> <br />
Парола <input type="password" name="db_pass" value="" /> <br />
База <input type="text" name="db_table" value="" /> <br />
Префикс <input type="text" name="db_prefix" value="" /> <br />
<input type="submit" name="install" value="" /> </form>
<?php } else {
$db_host = htmlspecialchars(addslashes($_POST['db_host']));
$db_user = htmlspecialchars(addslashes($_POST['db_user']));
$db_pass = htmlspecialchars(addslashes($_POST['db_pass']));
$db_table = htmlspecialchars(addslashes($_POST['db_table']));
$db_prefix = htmlspecialchars(addslashes($_POST['db_prefix']));
if (($db_host && $db_user && $db_pass && $db_table && $db_prefix) != NULL) {
if (mysql_connect($db_host,$db_user,$db_pass) && mysql_select_db($db_table)) {
$sql = mysql_query("CREATE TABLE `".$db_prefix."banners` (
`id` int(11) NOT NULL,
`img` varchar(255) NOT NULL,
`href` varchar(255) NOT NULL,
`impressions` int(11) NOT NULL default '0',
`clicks` int(11) NOT NULL default '0',
`size` varchar(255) NOT NULL,
`status` varchar(255) NOT NULL,
`allowed` int(11) NOT NULL,
`contactm` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;")or die(mysql_error());
$sql .= mysql_query("CREATE TABLE `".$db_prefix."admin` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`email` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;")or die(mysql_error());
$result = ($sql) ? write_config($db_host,$db_user,$db_pass,$db_table,$db_prefix) : "Възникна някаква грешка";
echo $result;
}
else {
echo " Не мога да се свържа с базата данни!<br />";
}
}
else {
echo " Моля ,върнете се и попълнете всички полета!<br />";
}
}
?>
 
aquafresh каза:
... Като всяка една готова система
Това ми беше от опита с ЦМС-ките :) на тебе щом не ти трябва , просто махаш отвсякъде префикс-а :)
<?php
function write_config($h,$u,$p,$t) {
$file = fopen('config.php','w');
$text = "<?php\n\n//Настройки на базата данни\n\n";
$text .= "\$dbhost = "".$h.""\n\$dbuser = "".$u.""\n\$dbpass = "".$p.""\n\$dbtable = "".$t.""\n";
$text .= "\nmysql_connect(\$dbhost,\$dbuser,\$dbpass)or die(mysql_error());\nmysql_select_db(\$dbtable)or die(mysql_error());\n//Край на настройките\n\n?>";
fwrite($file,$text);
fclose($file);
return "Всичко мина по мед и масло :)";
}
if (!isset($_POST['install'])) { ?>
<form action="" method="post">
Хост <input type="text" name="db_host" value="" /> <br />
Потр. име <input type="text" name="db_user" value="" /> <br />
Парола <input type="password" name="db_pass" value="" /> <br />
База <input type="text" name="db_table" value="" /> <br />
<input type="submit" name="install" value="" /> </form>
<?php } else {
$db_host = htmlspecialchars(addslashes($_POST['db_host']));
$db_user = htmlspecialchars(addslashes($_POST['db_user']));
$db_pass = htmlspecialchars(addslashes($_POST['db_pass']));
$db_table = htmlspecialchars(addslashes($_POST['db_table']));
if (($db_host && $db_user && $db_pass && $db_table && $db_prefix) != NULL) {
if (mysql_connect($db_host,$db_user,$db_pass) && mysql_select_db($db_table)) {
$sql = mysql_query("CREATE TABLE `banners` (
`id` int(11) NOT NULL,
`img` varchar(255) NOT NULL,
`href` varchar(255) NOT NULL,
`impressions` int(11) NOT NULL default '0',
`clicks` int(11) NOT NULL default '0',
`size` varchar(255) NOT NULL,
`status` varchar(255) NOT NULL,
`allowed` int(11) NOT NULL,
`contactm` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;")or die(mysql_error());
$sql .= mysql_query("CREATE TABLE `admin` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
`email` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;")or die(mysql_error());
$result = ($sql) ? write_config($db_host,$db_user,$db_pass,$db_table,$db_prefix) : "Възникна някаква грешка";
echo $result;
}
else {
echo " Не мога да се свържа с базата данни!<br />";
}
}
else {
echo " Моля ,върнете се и попълнете всички полета!<br />";
}
}
?>
 
Аа само ,че открих един проблем..
След като почна да инклудвам конфига в други файлове ми излиза
Код:
Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\123\_engine\config.php on line 3

Код:
<?php
$dbhost = "localhost"
$dbuser = "root"
$dbpass = "111"
$dbtable = "123"
$dbprefix = "123"
mysql_connect($dbhost,$dbuser,$dbpass)or die(mysql_error());
mysql_select_db($dbtable)or die(mysql_error());
?>

Ето това е конфиг.. дава ми на 3 ти ред грешка..
 
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "111";
$dbtable = "123";
$dbprefix = "123";
mysql_connect($dbhost,$dbuser,$dbpass)or die(mysql_error());
mysql_select_db($dbtable)or die(mysql_error());
?>
 

Горе