[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нет соединения с базой данных
Alexei1986
php1.php:
<?php
function
list()
{
$list='';
$connect=mysql_connect("localhost","root");
$database=mysql_select_db("database1",$connect);
$query=mysql_query("SELECT * FROM `options`");
while ($row=mysql_fetch_assoc($query))
{
$list.="<option>".$row['name']."</option>";
}
return $list;
}
include 'html1.html';
?>
html1.html:
<html>
<head>
<title>
HTML 1</title>
<meta
content="text/html; charset=windows-1251" http-equiv="Content-Type">
</head>
<body>
<select
align=center><?php echo list(); ?></select>
</body>
</html>

Нет соединения с базой данных, запрос ничего не находит. Как это исправить?



Спустя 12 минут, 20 секунд (14.12.2009 - 18:25) deMone написал(а):
Укажите пароль пользователя (даже если пустой — поставьте пустые кавычки).

Проверьте, что верно указано имя БД и таблицы.

Спустя 2 часа, 58 минут, 1 секунда (14.12.2009 - 21:23) Alexei1986 написал(а):
Все имена верные, более того, если функции соединения с базой данных не "загонять" внутрь функции list, то всё работает. Но чтобы не жертвовать html-страницей и не писать "корявого" кода, приходится создавать функцию.

По поводу пароля - где и куда его нужно вводить? И почему в таком случае без html-страницы всё работает без всяких паролей?

Спустя 22 минуты, 47 секунд (14.12.2009 - 21:46) BarTOne написал(а):
вот сматри открой файл db_connect

[code]<?php
$img_server="http://yoursite.ru/";
$now = time();

$link=mysql_connect("localhost","name","pass");
mysql_select_db("name",$link) or die ("Ошибка соединения с БД!");
mysql_query("SET CHARSET cp1251");

require_once('class.inputfilter.php');
$if = new InputFilter();

//xss фильтрация
$_POST = $if->process($_POST);
$_GET = $if->process($_GET);
$_ENV = $if->process($_ENV);
$_REQUEST = $if->process($_REQUEST);
$_SESSION = $if->process($_SESSION);

//sql иньекция
$_POST = $if->safeSQL($_POST, $link);
$_GET = $if->safeSQL($_GET, $link);
$_ENV = $if->safeSQL($_ENV, $link);
$_REQUEST = $if->safeSQL($_REQUEST, $link);
$_SESSION = $if->safeSQL($_SESSION, $link);


$uri=GetEnv("REQUEST_URI");
$uri=explode("127.0.0.1",$uri);

$ips=GetEnv("REMOTE_ADDR");

$ip=explode(".",$ips);


if (($ip[0] == 62 && $ip[1] == 183 && $ip[2] == 53) ||$ips=="80.66.253.60" || $ips=="80.66.253.60") {
echo"You are died wink.gif Go back wink.gif";
exit;
}
?>

Спустя 1 минута, 26 секунд (14.12.2009 - 21:47) Alexei1986 написал(а):
Собственно мой вопрос не в этом, а в том, что нужно исправить в коде?

Спустя 24 секунды (14.12.2009 - 21:48) sergeiss написал(а):
А с какой стати в файле HTML html1.html будет выполняться PHP код??? Обычно это не работает. Только если хостер будет прогонять все HTML-файлы через PHP-интерпретатор. "По умолчанию" это не делается.
Решение: второй файл html1 тоже должен PHP-файлом. Просто переименуй его в html1.php и запусти всё еще раз.
И еще не забудь как-то подключить первый файл ко второму, иначе этот скрипт ничего не узнает про функцию в другом скрипте.

Спустя 4 минуты, 23 секунды (14.12.2009 - 21:52) BarTOne написал(а):
Но как я сказал всё работает smile.gif

Спустя 11 минут, 24 секунды (14.12.2009 - 22:04) Alexei1986 написал(а):
Переделал. Так вроде бы работает:

php1.php:
<?php
include 'list.php';
?>
<html>
<
head>
<
title>PHP 1</title>
<
meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
</
head>
<
body>
<
select align=center><? echo list(); ?></select>
</
body>
</
html>

list.php:
<?php
function
list()
{
$list='';
$connect=mysql_connect("localhost","root");
$database=mysql_select_db("database1",$connect);
$query=mysql_query("SELECT * FROM `Options`");
while ($row=mysql_fetch_assoc($query))
{
$list.="<option>".$row['name']."</option>";
}
return $list;
}
?>

Здесь никаких "корявостей" нет?

Спустя 13 минут, 43 секунды (14.12.2009 - 22:17) Alexei1986 написал(а):
Ещё сообразил. Можно вообще без второго файла обойтись.

Спустя 23 минуты, 27 секунд (14.12.2009 - 22:41) sergeiss написал(а):
Цитата (Alexei1986 @ 14.12.2009 - 23:17)
Ещё сообразил.

Оффтоп: однако, ты быстро самообучаешься, перспективный программер, однако wink.gif

Спустя 6 минут, 25 секунд (14.12.2009 - 22:47) Alexei1986 написал(а):
Если это без иронии сказано, то спасибо за комплимент smile.gif
Теперь вот думаю, как запрограммировать select так, чтобы 1) при открытии страницы ни одна из опций не была выбрана по умолчанию, но пустой опции не должно быть; 2) при выборе опции чтобы сразу, без всяких submitов загружалась соответствующая страница...
Подумать надо... wink.gif

Спустя 4 минуты, 44 секунды (14.12.2009 - 22:52) VolCh написал(а):
1) это из области HTML верстки

2) это из области JavaScript, что-то вроде обработчика события onChange

Спустя 1 минута, 59 секунд (14.12.2009 - 22:54) Alexei1986 написал(а):
Цитата
2) это из области JavaScript


А без JavaScript, одним php, здесь никак нельзя?

Спустя 9 минут, 38 секунд (14.12.2009 - 23:04) Raskolnikoff написал(а):
Цитата
Цитата
2) это из области JavaScript


А без JavaScript, одним php, здесь никак нельзя?


Никак нельзя) Ведь php выполняется на сервере. А все действия пользователь выполняет уже на клиенте, там, где php нету.

Спустя 4 минуты, 25 секунд (14.12.2009 - 23:08) Alexei1986 написал(а):
А в какое место с точки зрения "правил" программирования лучше поставить все описания php-шных функций - в начало php-файла или внутрь <head><script> </script></head>?

Спустя 8 минут, 11 секунд (14.12.2009 - 23:16) sergeiss написал(а):
Цитата (Alexei1986 @ 15.12.2009 - 00:08)
А в какое место с точки зрения "правил" программирования лучше поставить все описания php-шных функций - в начало php-файла или внутрь <head><script> </script></head>?

Это, скорее, вопрос "веры", холиварных войн smile.gif Потому что есть "любители" вообще разделять html и ПХП, в разные файлы. А другие пишут так, как им удобнее.
Общее правило (на мой взгляд) такое: делай, как понятно и удобно именно тебе. Потому что у сторонников разных подходов есть свои доводы.

Спустя 18 минут, 46 секунд (14.12.2009 - 23:35) VolCh написал(а):
В начало, а по хорошему (согласно концепциям отделения логики от представления) еще и что-то вроде

<?php
//php1.php
$connect=mysql_connect("localhost","root");
$database=mysql_select_db("database1",$connect);
$query=mysql_query("SELECT * FROM `Options`");
$rows=array();
while ($rows[]=mysql_fetch_assoc($query));
?>

<html>
<
head>
<
title>PHP 1</title>
<
meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
</
head>
<
body>
<
select align=center>
<?php foreach($rows as $row): ?>
<option><?php echo $row['name']</option>
<?php endforeach; ?>
</select>
</
body>
</
html>


И это самый простой вариант smile.gif Просто уже давно идёт тенденция, что главное в программном коде (при условии что он работает правильно) не его эффективность для машины, а часто даже не скорость его написания, а скорость и удобство его поддержки и модификации.

Спустя 2 минуты, 39 секунд (14.12.2009 - 23:38) VolCh написал(а):
Цитата (sergeiss @ 15.12.2009 - 00:16)
Общее правило (на мой взгляд) такое: делай, как понятно и удобно именно тебе.

И, крайне желательно, быть при этом провидцем - знать, когда ты в этот код заглянешь (если вообще будешь заглядывать) в следующий раз и сможешь ли в нём разобраться wink.gif


_____________
Быстрый ответ:

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