За последние 24 часа нас посетили 54423 программиста и 1768 роботов. Сейчас ищут 1095 программистов ...

Добавление в базу данных

Тема в разделе "PHP для новичков", создана пользователем VaneS, 12 дек 2011.

  1. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Ребят, что то не пойму никак... вот у меня такой вопрос!
    PHP:
    1.  
    2. <?php
    3.            include("pass.php");
    4.     $_SESSION['passreg']=make_password(7);
    5.     $passreg=$_SESSION['passreg'];
    6.     $nik=$_SESSION['nik'];
    7.     $name=$_SESSION['name'];
    8.     $lastname=$_SESSION['lastname'];
    9.     $ip=$_SESSION['ip'];
    10.     $dat=$_SESSION['dat'];
    11.     $rez1 = mysql_query("INSERT INTO user (nik,name,lastname,mail,ip,dat,pass) VALUES ('$nik','$name','$lastname','$mail','$ip','$dat','$passreg')");
    12. ?>
    13.  
    Это часть кода которая должна выполнять добавление в базу данных, почему функция mysql_query возвращает false и никакого добавления не происходит? Никак не пойму в чем ошибка!!!! на другом скрипте добавлял, правда одну запись, все работает!!!! Может нельзя сразу добавлять так много значений за один запрос? Заранее большое спасибо!!!!
     
  2. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Если в файле pass.php нет
    PHP:
    1. <?php
    , то вероятно всего, что нужно добавить эту строку перед выше указанным кодом...
     
  3. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Да я выложил часть кода! А файл "pass.php" там находится функция которая генерирует строку из случайных символов, параметр которой является длинна строки! А "session_start();" добавляется в самом начале скрипта у меня...Вроде все правильно написано, а функция говорит то что добавление не удалось, вот не пойму почему так
     
  4. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Вот скрипт полностью
    PHP:
    1.  
    2. <?php
    3. include("connect.php");
    4. mysql_query("SET NAMES 'cp1251'",$db);
    5. $kod=$_SESSION['kod'];
    6. $kod1=$_GET['kod'];
    7. $mail=$_SESSION['mail'];
    8.  
    9. if ($kod1==1)
    10. {
    11.     if(isset($_SESSION['kod']))
    12.     {
    13.         $meseng1='<strong>Регистрация пользователя (шаг 2)</strong><br><br>На ваш E-mail: <a href="mailro:'.$mail.'" class="smallgraytext"><u>'.$mail.'</u></a> было отправленно письмо с дальнейшими инструкциями по регистрации. Большое спасибо за проявленный к нам интерес.';
    14.     }
    15.     else
    16.     {
    17.         $meseng1='<strong>Регистрация пользователя (шаг 2)</strong><br><br>Извините, но данная страница устарела! Пожалуйста вернитесь на главную страницу сайта<br><a href="../" class="smallgraytext">Перейти...</a>';
    18.     }
    19. }
    20. if ($kod1==$kod)
    21. {
    22.     include("pass.php");
    23.     $_SESSION['passreg']=make_password(7);
    24.     $passreg=$_SESSION['passreg'];
    25.     $nik=$_SESSION['nik'];
    26.     $name=$_SESSION['name'];
    27.     $lastname=$_SESSION['lastname'];
    28.     $ip=$_SESSION['ip'];
    29.     $dat=$_SESSION['dat'];
    30.     $rez1 = mysql_query("INSERT INTO user (name,lastname,mail,ip,dat,pass) VALUES ('$name','$lastname','$mail','$ip','$dat','$passreg')");
    31.      if($rez1)
    32.     {
    33.         $header="Content-type: text/html; charset=\"windows-1251\"";
    34.         $msn='Поздравляем с успешной регистрацией на сайте! Вот ваши данные для входа<br>***********************************************************************************************<br><br><b>E-mail:</b> '.$mail.'<br><b>Пароль:</b> '.$passreg.'<br><br>***********************************************************************************************<br>Спасибо за проявленный к нам интерес. По всем вопросам обращаться в службу поддержки';
    35.         mail($mail,"Поздравляем с успешной регистрацией",$msn,$header);
    36.         $meseng1='<strong>Регистрация пользователя (шаг 3)</strong><br><br><b>E-mail:</b> '.$mail.'<br><b>Пароль:</b> '.$passreg.'<br>По всем вопросам обращаться в службу поддержки. Так же Вам высланно письмо с данной информацией.';
    37.        
    38.      }
    39.     else
    40.     {
    41.         $meseng1='<strong>Ошибка работы базы данных</strong><br><br>Сервер базы данных не отвечает, пожалуйста повторите попытку регистрации снова, если данная ошибка повторяется обратитесь в службу технической поддержки, приносим свои извинения за неудобства!<br>';
    42.    
    43.     }
    44. }
    45. ?>
    46.  
    У меня почему то всегда выводит:
    $meseng1='<strong>Ошибка работы базы данных</strong><br><br>Сервер базы данных не отвечает, пожалуйста повторите попытку регистрации снова, если данная ошибка повторяется обратитесь в службу технической поддержки, приносим свои извинения за неудобства!<br>';
     
  5. Mamont

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

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    трудно mysql_error() посмотреть после запроса?
     
  6. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Прикол в том что почему-то именно в данную таблицу "user" ничего не могу добавить.... другую создал для проверки с 2-мя полями и все работает!!!!! Почему интересно?
     
  7. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Вот что пишет функция mysql_error():
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ('VaneS','VaneS','Ri_Lax','6jnv6um2','vanes-xxl@list.ru','188.186.208.1' at line 1

    Что это значит?
     
  8. NeoXidant

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

    С нами с:
    8 фев 2010
    Сообщения:
    121
    Симпатии:
    1
    Значит, что где то в строке ') VALUES ('VaneS','VaneS','Ri_Lax','6jnv6um2','vanes-xxl@list.ru','188.186.208.1'
    допущена синтаксическая ошибка
    Попробуйте использовать обратную кавычку - ` (клавиша с этим символом находится на стандартной клавиатуре слева от клавиши "1"), заместо обычной '

    ну и проверьте (print_r) что находится в каждой переменной и туда ли она попадает (малоли, вдруг ip адрес заносится в $passreg)

    PHP:
    1.  
    2. <?php
    3.     $rez1 = mysql_query("INSERT INTO `user` (`name`,`lastname`,`mail`,`ip`,`dat`,`pass`) VALUES (`$name`,`$lastname`,`$mail`,`$ip`,`$dat`,`$passreg`)");
    4.  
     
  9. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    Да я уже нашел в чем проблема!!!! просто помимо этих полей были еще и другие например между полями mail, pass было еще поле tel... я думал что если просто указать что и куда заносить, то будет заноситься.... а как оказалось нужно было все поля указывать.... я так понял что не нужно указывать все поля только тогда, когда редактируешь существующею запись, либо нужно что то ставить по умолчанию что бы добавлялось если поле пустое, а у меня ничего не добавлялось если поле пустое оставалось!