[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод окна при создании базы данных
_mitya
Нужно при нажатии на кнопку вывести окно, что бд создалась или нет.
Сделал с горем пополам, но база не создается, хотя отдельно от всего код работает и бд создается. Что может быть не верно? И правильно ли это воообще записано, можно ли легче? Спасибо заранее за помощь

<input class="input_pat" name="create_db" type="button" value="Создать базу" onclick="<?php
$con = mysql_connect("localhost","root","");
if (!
$con)
{
die('Could not connect: ' . mysql_error());
}

if (mysql_query("
CREATE DATABASE patients",$con))
{
echo "
javascript:alert('База данных пациентов создана');";
}
else
{
echo "
javascript:alert('Ошибка создания базы данных');";
}

mysql_close(
$con);
?> "
/>




Спустя 2 минуты, 2 секунды (6.05.2011 - 13:39) waldicom написал(а):
Цитата (_mitya @ 6.05.2011 - 11:37)
onclick="<?php
$con = mysql_connect("localhost","root","");
if (!$con)

не, так не получится. Или с помощь ajax или создавать базу при генерации страницы

Спустя 7 минут, 58 секунд (6.05.2011 - 13:47) _mitya написал(а):
Ну с ajax вообще не знаком. А при нажатии на кнопку никак нельзя по-другому?
Дело в том, что до того, как сделал, чтоб выводился алерт - бд создавалась

Спустя 7 минут, 9 секунд (6.05.2011 - 13:54) waldicom написал(а):
Цитата (_mitya @ 6.05.2011 - 11:47)
Дело в том, что до того, как сделал, чтоб выводился алерт - бд создавалась

покажите, как было до этого

Спустя 5 минут, 19 секунд (6.05.2011 - 13:59) _mitya написал(а):
Да просто вместо echo "База данных создана";

я знаю, что это не правильно. Но один раз точно так создалась. а щас вообще никак. Что предпринять?

Спустя 58 минут, 48 секунд (6.05.2011 - 14:58) waldicom написал(а):
Цитата (_mitya @ 6.05.2011 - 11:59)
я знаю, что это не правильно. Но один раз точно так создалась

это врядли

Цитата (_mitya @ 6.05.2011 - 11:59)
Что предпринять

Вот такая форма (упрощенно):

<form action="createDB.php" ...>
.....
<input type="submit" name="sbmCreateDB" value="Создать базу" />
.....
</form>



if(isset($_POST['sbmCreateDB'])){
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE patients",$con)){
echo "javascript:alert('База данных пациентов создана');";
} else {
echo "javascript:alert('Ошибка создания базы данных');";
}
mysql_close($con);
}

Произойдет перезагрузка страницы и создастся база данных. Конечно надо проверять, есть ли такая база уже.

Спустя 12 минут, 42 секунды (6.05.2011 - 15:11) _mitya написал(а):
 <form action="patients.php">
<input
type="submit" name="sbmCreateDB" value="Создать базу" />
</form>
<?php

if(isset($_POST['sbmCreateDB'])){
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE patients",$con)){
echo "javascript:alert('База данных пациентов создана');";
} else {
echo "javascript:alert('Ошибка создания базы данных');";
}
}

mysql_close($con);
?>


Правильно записал?
пишет ошибку уже в браузере в этой строке mysql_close($con); в dreamweaver ошибок нет. почему так?

Спустя 32 минуты, 37 секунд (6.05.2011 - 15:44) waldicom написал(а):
Цитата (_mitya @ 6.05.2011 - 13:11)
пишет ошибку уже в браузере в этой строке mysql_close($con);

Что за ошибка? Что-либо про resource?

Цитата (_mitya @ 6.05.2011 - 13:11)
в dreamweaver ошибок нет. почему так?

Потому что dreamweaver проверяет (если проверяет) только синтаксис, но не может проверить логику или исполнение программы в реальном времени.

Спустя 19 минут, 11 секунд (6.05.2011 - 16:03) _mitya написал(а):
Цитата (waldicom @ 6.05.2011 - 12:44)
Что за ошибка? Что-либо про resource?


ага, пишет is not a valid MySql-link esource in и путь к документу

Спустя 16 минут, 34 секунды (6.05.2011 - 16:19) waldicom написал(а):
Цитата (_mitya @ 6.05.2011 - 14:03)
ага, пишет is not a valid MySql-link esource in и путь к документу

Потому что
mysql_close($con);

надо засунуть внутрь
if(isset...)

Спустя 22 минуты, 22 секунды (6.05.2011 - 16:42) _mitya написал(а):
засунул перед последним }
ошибки нет, но ничего не создается и не появляется окно.
что не так?

Спустя 1 час, 29 минут, 38 секунд (6.05.2011 - 18:11) _mitya написал(а):
поставил в форме метод - post. база создается. но вместо окна появляется надпись, то есть то, что после эхо.
окно не вылазит. что делать?

Спустя 39 минут, 53 секунды (6.05.2011 - 18:51) _mitya написал(а):
вот код который работает, но вопрос возник. Работает ли код после <script>?
php код то закрывается а потом открывается - это ничего?

 <form action="patients.php" method="post">
<input
class="input_pat" name="create_db" type="submit" value="Создать базу"/>
</form>
<?php

if(isset($_POST['create_db']))
{
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

if (mysql_query("CREATE DATABASE patients",$con))
{
?> <script type="text/javascript">
javascript:window.alert('База создана')
</script>
<?php

}
else
{
?> <script type="text/javascript">
javascript:window.alert('Ошибка создания')
</script>
<?php

}

mysql_close($con);}
?>

Спустя 16 минут, 19 секунд (6.05.2011 - 19:08) waldicom написал(а):
Цитата (_mitya @ 6.05.2011 - 16:51)
вот код который работает, но вопрос возник. Работает ли код после <script>?

Если работает, то очевидно, что работает smile.gif

Спустя 37 минут, 31 секунда (6.05.2011 - 19:45) _mitya написал(а):
В принципе да biggrin.gif
Спасибо за помощь smile.gif

Спустя 17 часов, 54 минуты, 5 секунд (7.05.2011 - 13:39) _mitya написал(а):
хочу чтоб если база уже создана - вылазило соответствующее окошко.
как понял это с помощью IF EXISTS. только не пойму как его сделать. в него вложить создание бд?

Спустя 3 минуты, 57 секунд (7.05.2011 - 13:43) sharki написал(а):
_mitya
Как видишь тут используется оператор IF, следовательно если IF EXISTS (существует) THEN не выполнять ничего, а если нету ELSE, то выполнить код ... END IF

Спустя 12 минут, 40 секунд (7.05.2011 - 13:56) _mitya написал(а):
Цитата (sharki @ 7.05.2011 - 10:43)
_mitya
Как видишь тут используется оператор IF, следовательно если IF EXISTS (существует) THEN  не выполнять ничего, а если нету ELSE, то выполнить код ... END IF

эт все понятно :D
вот как это в пхп записать?

попытался вот так, но выводит сообщение, что база типа создана, хотя это не так

<?php
$hostname='localhost';
$username='root';
$password='';
if(isset($_POST['create_db']))
{
$con = mysql_connect($hostname,$username,$password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
if (mysql_query("NOT EXISTS (select * from sys.databases where name = 'patients'"))
if (mysql_query("CREATE DATABASE patients",$con))
{
?> <script type="text/javascript">
javascript:window.alert('База данных создана')
</script>
<?php

}
else
{
?> <script type="text/javascript">
javascript:window.alert('Ошибка создания базы данных')
</script>
<?php

}
else
{
?> <script type="text/javascript">
javascript:window.alert('w')
</script>
<?php

}
mysql_close($con);}
?>


Спустя 7 минут, 25 секунд (7.05.2011 - 14:03) sharki написал(а):
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[
table_options]
[
partition_options]


Как видишь создается запрос по этому шаблону, т.е создать таблицу ЕСЛИ ЕЁ НЕ СУЩЕСТВУЕТ
[IF NOT EXISTS] tbl_name
Если она есть, то ничего не создаст

http://dev.mysql.com/doc/refman/5.1/en/create-table.html


Если ты не знаешь как всё это подставить в запрос, то так и подставляешь в
mysql_query().

Вот например мой кусочек кода

$exist_sql = "SELECT * 
FROM `sup_manager`
WHERE 0
"
;
$exist = mysql_query($exist_sql);

if(!$exist) {

$sql = "CREATE TABLE `sup_manager` (
`id` INT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 200 ) NOT NULL ,
`status` ENUM( 'on', 'off' ) NOT NULL DEFAULT 'off',
`pass` VARCHAR( 45 ) NOT NULL ,
`date` DATETIME NOT NULL
)"
;

.....

Спустя 6 часов, 45 минут, 2 секунды (7.05.2011 - 20:48) _mitya написал(а):
Это я понял. а как сделать, чтоб если она создана уже, то появлялось окошко соответствующее?

Спустя 5 минут, 46 секунд (7.05.2011 - 20:54) sharki написал(а):
ну ты чего, вот условие if(!$exist) {Если её нету} else {если она есть, делай что хочешь} О_О

Спустя 10 минут, 20 секунд (7.05.2011 - 21:04) _mitya написал(а):
вот код, вроде я все правильно сделал, но не работает. что не так?

 <?php
$hostname='localhost';
$username='root';
$password='';
if(isset($_POST['create_db']))
{
$con = mysql_connect($hostname,$username,$password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$query_sql="CREATE DATABASE IF NOT EXISTS patients";
$query=mysql_query($query_sql);
if ($query)
{
?> <script type="text/javascript">
window.alert('База данных создана')
</script>
<?php

}
else
{
?> <script type="text/javascript">
window.alert('Ошибка создания базы данных')
</script>
<?php

}

mysql_close($con);}
?>

Спустя 5 минут, 33 секунды (7.05.2011 - 21:10) sharki написал(а):
_mitya
базу то он создает? или нет?

Спустя 2 минуты, 11 секунд (7.05.2011 - 21:12) sharki написал(а):
Оформление кода УЖАСНОЕ, оформляй как полагается
и вот эту часть
<script type="text/javascript">
window.alert('База данных создана')
</script>

Можно в PHP оформить вот так

echo '<script type="text/javascript">
window.alert("База данных создана")
</script>'
;

Спустя 4 минуты, 31 секунда (7.05.2011 - 21:17) _mitya написал(а):
та я только 3 день с ПХП и базами вожусь, конечно оформлние ужасное biggrin.gif
спасибо за оформление окна. база создается, но вылазит постоянно одно и то же окно, что база создана.

Спустя 4 минуты, 15 секунд (7.05.2011 - 21:21) sharki написал(а):
_mitya
А ты убери IF NOT EXISTS и будет выдавать ошибку, т.е "Ошибка создания базы данных" =)

Спустя 4 минуты, 43 секунды (7.05.2011 - 21:26) _mitya написал(а):
хм, не пойму в чем прикол. до того, как я сделал запрос query переменной - уменя и было без if not exists, но ошибка не вылазила. Неужели изза оформления в переменную?
Так правильней записывать,да? а какие еще есть ошибки такого рода в коде?

Спустя 4 минуты, 40 секунд (7.05.2011 - 21:30) sharki написал(а):
if ($query)
{
?>

Вот так нежелательно отделять код, если ужсильно то есть вот такие конструкции

<?php   if(true):  ?>
<html> бла бла бла</html>
<?php endif; ?>

и т.д

Спустя 4 минуты, 13 секунд (7.05.2011 - 21:34) _mitya написал(а):
ага, короче пхп код лучше не разделять. хорошо, спасибо, буду знать. и лучше записывать запросы в переменные, да?

Спустя 2 минуты, 7 секунд (7.05.2011 - 21:37) sharki написал(а):
_mitya
Желательно, так просто понятнее

Спустя 12 минут, 56 секунд (7.05.2011 - 21:49) _mitya написал(а):
спасибо smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.