Ошибка с присвоением

Тема в разделе "PHP программирование", создана пользователем web_VIP, 23 июл 2008.

Статус темы:
Закрыта.
  1. web_VIP

    web_VIP Гость

    Говорит ошибку в 4 строке, типо: "Parse error: syntax error, unexpected '[' in Z:\home\localhost\www\ccs\login.php on line 12"
    Код (Text):
    $query_old = mysql_query("Select * from users WHERE login='$login'");
    if($query_old) {
    $old=mysql_fetch_array ($query_old);
    $old = old['email'];
    };
    Не знаю что делать, подскажите...
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    На 100 процентов не уверен, но на первый взгляд бросилось:
    1. WHERE login='".$login."'". (одинарная, двойная, двойная, одинарная, двойная кавычки)
    2. $old=$old[/b]. (поставь знак доллара и убери одинарные кавычки)
    P. S. Когда учился работать с MySQL, у меня было так.
     
  3. MiXOH

    MiXOH Гость

    В строке
    Код (Text):
    $old = old['email'];
    нехватает знака $ перед переменной old.
    Должно быть так:
    Код (Text):
    $old = $old['email'];
    И все будет работать ^_^
     
  4. destr

    destr Гость

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

    ShadowCoder Гость

    destr
    +1

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

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

    GOsha Гость

    предлагаю сделать так:
    Код (Text):
    //Делаем запрос

    $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'];
    };
    Примерно так. На серве не катал - лень. ТАм я думаю все будет довольно просто.
     
Загрузка...
Похожие Темы - Ошибка присвоением
  1. Lamerman
    Ответов:
    0
    Просмотров:
    27
  2. Enima
    Ответов:
    0
    Просмотров:
    53
  3. Baindt
    Ответов:
    1
    Просмотров:
    75
  4. anna
    Ответов:
    2
    Просмотров:
    82
  5. gramzer
    Ответов:
    1
    Просмотров:
    120
Статус темы:
Закрыта.

Поделиться этой страницей