Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка с присвоением
Форум программистов > Интернет и сети > Web-программирование > PHP программирование
web_VIP
Говорит ошибку в 4 строке, типо: "Parse error: syntax error, unexpected '[' in Z:\home\localhost\www\ccs\login.php on line 12"
$query_old = mysql_query("Select * from users WHERE login='$login'");
if($query_old) {
$old=mysql_fetch_array ($query_old);
$old = old['email'];
};


Не знаю что делать, подскажите...
Vadik(R)
На 100 процентов не уверен, но на первый взгляд бросилось:
1. WHERE login='".$login."'". (одинарная, двойная, двойная, одинарная, двойная кавычки)
2. $old=$old[email]. (поставь знак доллара и убери одинарные кавычки)
P. S. Когда учился работать с MySQL, у меня было так.
sax_ol
Vadik®
Цитата(Vadik(R) @ 23:07:2008 - 07:31) *
$old=$old[email]. (поставь знак доллара и убери одинарные кавычки)
Тут это ваще смотрится бредова. Пусть автор раскажет чего ему надо в итоге сделать.
MiXOH
В строке
$old = old['email'];


нехватает знака $ перед переменной old.
Должно быть так:
$old = $old['email'];


И все будет работать smile.gif
destr
Не стоит делать такое присваивание. Ошибётесь через 50 сток кода. Будете думать что там массив, а там уже его и нет.
ShadowCoder
destr
+1

$old = old['email'];
- переменная $old после извлечения данных из базы имеет тип "массив". А когда происходит вышеуказанная операция, то переменная меняет свой тип на "строковый" (судя по всему), следовательно, если массив содержал и другие значения - то все они будут потеряны!

P.S.: если из таблицы выбирается одно какое-то поле, то не разумнее ли использовать вместо функции "mysql_fetch_array(...)" - функцию mysql_result(...) ??? wink.gif
так же и в самом запросе указываеть не все поля ("*") - а какое-то одно: "Select `email` from users WHERE ......."
GOsha
предлагаю сделать так:
//Делаем запрос

$query_old = mysql_query("Select `email`  from users WHERE login=`".$login."`");

//Логин я так понял уникальный - проверяем что такое есть, запрос прошел и результат - одна строка

if(mysql_num_rows($query_old)==1) {

//mysql_fetch_assoc(...) Возвращает ассоциативный массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.
//Также можно получить результ, как и ShadowCoder при помощи mysql_result(...)
//или вашего mysql_fetch_array ($query_old), как кому больше нравится

$old=mysql_fetch_assoc ($query_old);

//Далее мы можем чисто для себя показать в имени переменной, что это поле mail из массива old

$old_mail = $old['email'];
};

Примерно так. На серве не катал - лень. ТАм я думаю все будет довольно просто.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.