Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Скрипт не работает внутри функции, но без нее работает прекрасно / 8 сообщений из 8, страница 1 из 1
28.12.2013, 19:17
    #38515088
IVRMX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
Доброго времени суток! Пишу сюда первый раз, так как столкнулся с непонятной для меня проблемой.
Имеется скрипт выборки национальностей.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
include 'config.php';

$mysqli = new mysqli($server, $user, $password, $db);
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к серверу БД: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
	exit;
}
$mysqli->set_charset("utf8");


//Список национальностей
$result=$mysqli->query('SELECT name FROM nationality_types WHERE name<>"Не определено"');

	while ($row = mysqli_fetch_assoc($result)){
	$nation= $row['name'];
	echo ($nation . '<hr/>');
	
	}



Скрипт выше срабатывает отлично!

А теперь внутри функции.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?
//Данный скрипт файл генерирует формы
include 'config.php';



function drawEGEform()
{

$mysqli = new mysqli($server, $user, $password, $db);
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к серверу БД: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
	exit;
}
$mysqli->set_charset("utf8");

//Список национальностей
$zzz=$mysqli->query('SELECT name FROM nationality_types WHERE name<>"Не определено"');

	while ($row = mysqli_fetch_assoc($zzz)){
	$nation= $row['name'];
	echo ($nation . '<hr/>');
	
	}
}
 ?>



Вызываю в файле step2.php таким образом:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?
include 'form.php';


echo('<div id="main">

');

drawEGEform();

echo('

</div>
');
?>



Выдает: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\form.php в строке: $zzz=$mysqli->query('SELECT name FROM nationality_types WHERE name<>"Не определено"');

Буду рад вашей помощи!
...
Рейтинг: 0 / 0
28.12.2013, 20:25
    #38515121
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
...
Рейтинг: 0 / 0
28.12.2013, 20:33
    #38515130
Сергей Арбузов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
IVRMX,
похоже параметры для подключения к базе отличаются от параметров по умолчанию
но и подключение к базе по умолчанию проходит
...
Рейтинг: 0 / 0
28.12.2013, 21:11
    #38515134
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
Сергей Арбузовподключение к базе по умолчанию проходитИли, возможно, СУБД имеет пользователя '%' без пароля. Но вот SELECT уж точно уходит в никуда, потому как БД не выбрана.
...
Рейтинг: 0 / 0
28.12.2013, 22:51
    #38515173
IVRMX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
vkle, огромное спасибо!

Рабочий скрипт

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?
//Данный скрипт файл генерирует формы
include 'config.php';

function drawEGEform()
{
Global $server, $user, $password, $db;
$mysqli = new mysqli($server, $user, $password, $db);
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к серверу БД: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
	exit;
}
$mysqli->set_charset("utf8");

//Список национальностей
$zzz=$mysqli->query('SELECT name FROM nationality_types WHERE name<>"Не определено"');

	while ($row = mysqli_fetch_assoc($zzz)){
	$nation= $row['name'];
	echo ($nation . '<hr/>');
	
	}
	
...
Рейтинг: 0 / 0
29.12.2013, 03:07
    #38515237
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
IVRMX,

Глобалы говняные уже всех достали. Вы когда-нибудь чему-нибудь учиться будете? ООП там, DEPENDENCY INJECTION etc. ???
XXI век на дворе епта!
...
Рейтинг: 0 / 0
29.12.2013, 11:49
    #38515290
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
+ Константы и суперглобальные массивы пока еще не отменили.
...
Рейтинг: 0 / 0
10.01.2014, 22:40
    #38522624
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт не работает внутри функции, но без нее работает прекрасно
MikkiMouse,

пипл даже ООП не хавает, а ты сразу на высший уровень -- Dependency Injection =)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Скрипт не работает внутри функции, но без нее работает прекрасно / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]