За последние 24 часа нас посетил 19031 программист и 1613 роботов. Сейчас ищут 676 программистов ...

Нет соединения с базой

Тема в разделе "PHP и базы данных", создана пользователем AlexeyT, 17 май 2011.

  1. AlexeyT

    AlexeyT Активный пользователь

    С нами с:
    17 май 2011
    Сообщения:
    1
    Симпатии:
    0
    Знаю что этот вопрос поднимался не раз, но ошибки были допущены в виде синтаксических неточностей и прочее.

    Собственно сама ошибка: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\1\save_user.php on line 142

    Пытаюсь сделать проверку по еще 1 записи из базы данные т.е. пользователь регистрируется и должен ввести код приглашения если такого нету то должна вывестись ошибка.

    Кусок кода:
    PHP:
    1. include ("bd.php");
    2.  
    3. //---------------------мой код---------------------
    4. $result52 = mysql_query("SELECT key FROM konfkey WHERE key='$key'",$db);
    5. $myrow52 = mysql_fetch_array($result52);
    6. if (empty($myrow52['id']))
    7. {
    8. exit ("Введенный Вами ключ не существует, для того что-бы получить ключ, Вам нужно связаться с администрацией");
    9. }
    10. //---------------------мой код---------------------
    11. // проверка на существование пользователя с таким же логином
    12. $result = mysql_query("SELECT id FROM xusers WHERE login='$login'",$db);
    13. $myrow = mysql_fetch_array($result);
    14. if (!empty($myrow['id'])) {
    15. exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    16. }
    17.  else
    18. // если такого нет, то сохраняем данные
    19. $result2 = mysql_query ("INSERT INTO xusers (login,password,avatar) VALUES('$login','$password','$avatar')");
    20.  
    21.  
    22.  
    23. // Проверяем, есть ли ошибки
    24. if ($result2=='TRUE')
    25. {
    26. echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    27. }
    28.  
    29. else {
    30. echo "Ошибка! Вы не зарегистрированы.";
    31.      }
    32. ?>


    Создал таблицу все вроде бы правильно имя в запросе абсолютно такое-же, что интересно вот тут все работает замечательно
    PHP:
    1. $result = mysql_query("SELECT id FROM xusers WHERE login='$login'",$db);
    2. $myrow = mysql_fetch_array($result);
    3. if (!empty($myrow['id'])) {
    4. exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    5. }
    Чего нельзя сказать о том где "мой код"

    вторые сутки пытаюсь разобраться нечего не получается, пожалуйста помогите.
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    mysql_query('тут запрос') or die(mysql_error());

    И смотри свои ошибки.
     
  3. aleksb

    aleksb Активный пользователь

    С нами с:
    11 май 2011
    Сообщения:
    28
    Симпатии:
    0
    Если вы видете сообщение об ошибке Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in - это означает, что вы не обработали возможные ошибки обработки SQL-запроса, такая ошибка возникла и функциия mysql_query() вернула false вместо дескриптора результирующей таблицы. Далее скрипт передаёт false функции mysql_fetch_array(), на что она естественно огрызается. Следует обработать возможные ошибки для всех функций mysql_query()
     
  4. aleksb

    aleksb Активный пользователь

    С нами с:
    11 май 2011
    Сообщения:
    28
    Симпатии:
    0
    Примерно так:
    PHP:
    1. <?php
    2. $result52 = mysql_query("SELECT key FROM konfkey WHERE key='$key'",$db);
    3. $myrow52 = mysql_fetch_array($result52);
    4. if(!$result52)
    5. {
    6.   echo "Возникла ошибка - ".mysql_error()."<br>";
    7.   echo $result52;
    8.   exit();
    9. }
    10. // Далее остальной код
    11. ?>