[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему такой скрипт не работает?
program90

function getUser($id = -1)
{
if ($id == -1)
{
$id = $_SESSION['user_id'];
};

mysql_connect(...................);
mysql_select_db(...................);
$q = mysql_query("SELECT `name`, `second_name`, `login`, `group_id`, `email`, `registered` FROM users WHERE `id` = '$id';");
$r = mysql_fetch_row($q);

$result = array();
$result['name'] = $r[0];
$result['second_name'] = $r[1];
$result['login'] = $r[2];
$result['group_id'] = $r[3];
$result['email'] = $r[4];
$result['registered'] = $r[5];
return $result;
};



Возвращает пустой массив если передать id как значение переменной: getUser($id);
А если вызвать так getUser(1), то работает правильно.

И в обоих случаях, при выводе возвращенного массива на экран print_r($arr) выводятся два одинаковых массива, а не один.



Спустя 3 минуты, 20 секунд (30.03.2011 - 12:09) Renden написал(а):
Я не спец, но может как-то так?

$q = mysql_query("SELECT `name`, `second_name`, `login`, `group_id`, `email`, `registered` FROM users WHERE `id` = '$id'"); //точку с запятой в запросе не надо
$result = array();
$result = mysql_fetch_assoc($q);
return $result;

Спустя 3 минуты, 18 секунд (30.03.2011 - 12:12) alex12060 написал(а):
session_start() прописано?

Спустя 11 минут, 18 секунд (30.03.2011 - 12:23) pak написал(а):
в запросе в конце надо убрать точку запятой.

Спустя 1 минута, 12 секунд (30.03.2011 - 12:24) alex12060 написал(а):
pak

Она тут не причем.

Спустя 21 час, 5 минут, 23 секунды (31.03.2011 - 09:30) program90 написал(а):
alex12060
Да, прописано. вызывается в другом файле.

Спустя 3 минуты, 3 секунды (31.03.2011 - 09:33) program90 написал(а):
Renden,
pak
Просто обычно пишу так как написал и все работает а тут нет. Странно.

Спустя 39 минут, 26 секунд (31.03.2011 - 10:12) Лена написал(а):
Или у вас где-то теряется сессия, или вы $id уже где-то по скрипту используете.

print_r($_SESSION); делали?
И print $id; внутри функции.
И вызов функции не с $id, например, такой - getUser($val);

Спустя 32 минуты, 36 секунд (31.03.2011 - 10:45) Trianon написал(а):
Цитата
Возвращает пустой массив если передать id как значение переменной: getUser($id);
А если вызвать так getUser(1), то работает правильно.

И в обоих случаях, при выводе возвращенного массива на экран print_r($arr) выводятся два одинаковых массива, а не один.


Все проблемы, которые Вы описываете, касаются не кода функции getUser(), а кода, который эту функцию вызывает. Его-то Вы и не приводите.

Спустя 2 часа, 26 минут, 20 секунд (31.03.2011 - 13:11) program90 написал(а):
код простой:
print_r(getUser(1));
Пользователь с таким id есть в базе данных, и для него выводится информация.
Если вместе 1 подставить переменную, например, $a, то выводится пустой массив.

Спустя 4 часа, 8 минут, 43 секунды (31.03.2011 - 17:20) inpost написал(а):
	 $r = mysql_fetch_row($q);

$result = array();
$result['name'] = $r[0];
$result['second_name'] = $r[1];
$result['login'] = $r[2];
$result['group_id'] = $r[3];
$result['email'] = $r[4];
$result['registered'] = $r[5];
return $result;


Юморист =)
return mysql_fetch_assoc($q);


А так ничего не понятно, что у тебя передаётся и как передаётся. То есть ты покажи одним общим скриптом, создай temp.php,
Ты уверен, что $id = 1; ???

Ты говоришь, что вызываешь так: getUser($id); , вот и напиши:

$id = 1;
$array = getUser($id);

Спустя 15 часов, 36 минут, 59 секунд (2.04.2011 - 08:57) program90 написал(а):
inpost
Спасибо, заработало)). Почему-то я про mysql_fetch_assoc забыл)))
Быстрый ответ:

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