Перейти к содержимому


× Быстрый вопрос
Пользователь месяца
dos1k dos1k 1-й за Май
Очков активности: 1 194 28 тем, 115 сообщений, 4 балла репутации
Сайт: dos1k.ru
ТОП самых активных за этот месяц
  • Фотография Olya23
    #1

    Olya23
    Очков активности: 696 3 темы, 107 сообщений, 4 балла репутации

  • Фотография Rodiola
    #2

    Rodiola (rukodelkovo.ru)
    Очков активности: 414 0 тем, 69 сообщений, 4 балла репутации

  • Фотография maxnik
    #3

    maxnik (konovalovpavel.ru)
    Очков активности: 85.5 0 тем, 19 сообщений, 3 балла репутации

  • Фотография agrx
    #4

    agrx (key-assort.ru)
    Очков активности: 54 0 тем, 18 сообщений, 2 балла репутации

  • Фотография fedornabilkin
    #5

    fedornabilkin (plohoneponyal.ru)
    Очков активности: 42 0 тем, 14 сообщений, 2 балла репутации

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 40.5 Вне конкурса за определение пользователя месяца

  • Фотография Андрей WPMasterKZ
    #7

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 36 0 тем, 24 сообщения, 1 балл репутации

  • Фотография re-search
    #8

    re-search
    Очков активности: 36 5 тем, 9 сообщений, 1 балл репутации

  • Фотография Ixman
    #9

    Ixman (o5cat.ru)
    Очков активности: 24 0 тем, 8 сообщений, 2 балла репутации

  • Фотография Artos
    #10

    Artos
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 24.05.2019
  • Яндекс выдача: 17.06.2019
Топ 5 участников по репутации


Не передаётся $значение в function()

#1 Wano

Wano
  • Неактивные
  • 2 сообщений
  • Репутация: 0
0

Отправлено 31 Август 2015 - 15:41

Заране извиняюсь за, наверное, глупый вопрос, но недавно мигрировал на ПХП с одного древнего и 100% несовмесимого языка ныне мёртвой платформы.

Надеюсь, вашей помощью и своими кривыми мозгами смогу спрямить руки и начать писать работопргодный код.

 

Имею код, который выносит мне мозг. На одной странице есть функция и код, её инициализирующий. Проядок в коде сохранён.

FUNCTION test($test_mysql_request_result)
	{//================ TESTING ================//
	$msg .= '<br /><br />================ TESTING ================';
		$msg .= '<br /><b>MYSQL REQUEST SUCCESSFUL!</b><br />';
		while ($db_field = mysqli_fetch_assoc($test_mysql_request_result))
			{
				var_dump($db_field);
				// Берём и назначаем в переменные кучу всяких параметров
				$test_id = $db_field['id'];
				$test_name = $db_field['name'];
			}
		$msg .= '<br />|||'. $test_id .'|||<br />';
		$msg .= '<br />|||'. $test_name .'|||<br />';
		$msg .= '<br /><b><span style="color: green;">EVERYTHING WORKS!!!</span></b><br />';
	$msg .= '================ TESTING - END ================<br /><br />';
	//================ TESTING - END ================//
	echo $msg;
	return $msg;
	}
if ($test_mysql_request_result = mysqli_query($con, $sql))
		{
			$msg = test($test_mysql_request_result);
		}
		else
		{
			$msg .= '<br /><b>NO MYSQL REQUEST RESULT!!!</b><br />';
		}
		echo $msg;

Суть беды:

0. $test_mysql_request_result = mysqli_query($con, $sql), возврашает array. Гарантированно: если ("echo $sql;" -> "ctrl+ins/shift+ins" >> PMA sql) || (var_dump($test_mysql_request_result)), то всё ок.

1. $msg = test($test_mysql_request_result);

// формирую сообщение, но для этого...

1а. test($test_mysql_request_result);

// вызываю ункцию

1а1. FUNCTION test($test_mysql_request_result)

//функция присваивает локальной $test_mysql_request_result значение со своего входа.

1а2. while ($db_field = mysqli_fetch_assoc($test_mysql_request_result)){...};

// пролетает мимо, ибо $test_mysql_request_result уже пустая.

2. echo $msg - выводит, ессно, только обвес, без занчений.

 

Как говорится, ЧЯДНТ?


 

 

  • 0

#2 Info-Mans

Info-Mans
  • Пользователь
  • 1 241 сообщений
  • Репутация: 124

Отправлено 31 Август 2015 - 17:17

$test_mysql_request_result = mysqli_query($con, $sql) не отдает массив (array), а отдает объект.

 

Чтобы принять в массив надо:

$items = mysqli_fetch_all($test_mysql_request_result, MYSQLI_ASSOC);

Сообщение отредактировал Info-Mans: 31 Август 2015 - 17:18

  • 0

»»» Начни изменять свою жизнь с внешнего вида «««
        Буду рад вашим комментариям на блоге!



#3 Wano

Wano
    Topic Starter
  • Неактивные
  • 2 сообщений
  • Репутация: 0

Отправлено 31 Август 2015 - 17:55

@Info-Mans,

 

 
$items = mysqli_fetch_all($test_mysql_request_result, MYSQLI_ASSOC);

У меня в одном массиве (ибо автоматизация) должны висеть примерно 180 значений (9 объектов по 20 полей каждый) Потому отдавать в функцию в таком виде - нерационально.

Для это в функции стоит:

while ($db_field = mysqli_fetch_assoc($test_mysql_request_result)

Вместе с тем, наблюдается интересный глюк: после того, как я добавил так:

if ($test_mysql_request_result = mysqli_query($con, $sql))
{
	$msg = test($test_mysql_request_result);
}
else
{
	$msg .= '<br /><b>NO MYSQL REQUEST RESULT!!!</b><br />';
}
echo $msg;
while ($db_field = mysqli_fetch_assoc($test_mysql_request_result))
{
	var_dump($db_field);
	// Берём и назначаем в переменные кучу всяких параметров
	$test_id = $db_field['id'];
	$test_name = $db_field['name'];
}

...значение в функции присвоилось!

Я не понимаю, как код ниже вообще может взимодействовать с кодом выше.

 

UPD:

Выявлена зависимость от переменной $_SESSION['id'].

Покопаю-ка я это направление. Если вдруг что найдётся - отпишусь.


Сообщение отредактировал Wano: 31 Август 2015 - 18:08

  • 0



Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru