За последние 24 часа нас посетили 18838 программистов и 1647 роботов. Сейчас ищут 862 программиста ...

да опять не получается с БД

Тема в разделе "PHP для новичков", создана пользователем writer, 7 окт 2012.

  1. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    вот какой раз парюсь и не могу понять где ошибки делаю...
    все перепробовал 50 раз
    Код (Text):
    1. if($data<60){
    2.  
    3. $db_host="127.0.0.1";  
    4. $db_user="root";  
    5. $db_password="";  
    6. $db_name = "asy";  
    7.     $db = mysql_connect($db_host,$db_user,$db_password);
    8.         if(!$db) echo 'Ошибка подключения';
    9.     mysql_select_db($db_name);
    10. $nop=1;
    11. $name=$_POST['name'];
    12. $lastname=$_POST['lastname'];
    13. $age=$_POST['age'];
    14. $email=$_POST['email'];
    15. $ip=$_POST['ip'];
    16. $ipserv=$_POST['ipserv'];
    17. $proc=$max/100*$a1;
    18.  
    19. $result = mysql_query("INSERT INTO `test` (nop,name,lastname,email,age,ip,ipserv,proc) VALUES('$nop','$name','$lastname','$email','$age','$ip','$ipserv','$proc')");
    20.  
    21. if($result) {
    22.  
    23. } else {
    24.     echo 'Запись не обновлена';
    25. }}
    26. else{}
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в чем затык?
     
  3. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    выходит сообщение что не добавилось. проверяю в БД не добавилось. Переменные все проверил и соединение проходит.
    Данные не сохраняются(
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а запрос какой получился? возьми его и скопируй в пма
     
  5. writer

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

    С нами с:
    17 авг 2012
    Сообщения:
    131
    Симпатии:
    0
    Код (Text):
    1. INSERT INTO `test`(`id`, `nop`, `name`, `lastname`, `email`, `ip`, `ipserv`, `age`, `proc`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9])
    Добавлено спустя 10 минут 42 секунды:
    они же идентичны(((
    и с косыми ковычками пробовал и всяко всяко
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это что за квадратные скобки?
     
  7. Swapf

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

    С нами с:
    8 окт 2012
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    Россия, Самарская обл, Сызрань
    Если не разберешься - сбрось пример(с формой и sql-скриптом на создание таблицы) в личку или выложи тут. Разберемся)
    Кстати, в форме все имена полей правильны? В таблицах БД тоже ниче не напутал? Главное, не запаривайся, проблема-то пустяковая.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    надо просто глянуть РЕАЛЬНЫЙ запрос как он получается, а не думать, что он выглядит так.
     
  9. Gold Dragon

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

    С нами с:
    30 сен 2012
    Сообщения:
    306
    Симпатии:
    2
    Адрес:
    Тамбов
    не люблю так
    Код (Text):
    1. $result = mysql_query("INSERT INTO `test` (nop,name,lastname,email,age,ip,ipserv,proc) VALUES('$nop','$name','$lastname','$email','$age','$ip','$ipserv','$proc')");
    Советую всегда делать так
    Код (Text):
    1. $sql = "INSERT INTO `test` (nop,name,lastname,email,age,ip,ipserv,proc) VALUES('$nop','$name','$lastname','$email','$age','$ip','$ipserv','$proc')";
    2. $result = mysql_query($sql);
    Потому что можно всегда сделать так
    Код (Text):
    1. echo $sql;
    и как правильно сказал igordata, посмотреть реальный запрос. А ещё лучше его выполнить на каком-нибудь SQL-клиенте, пусть даже phpMyAdmin
     
  10. Swapf

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

    С нами с:
    8 окт 2012
    Сообщения:
    82
    Симпатии:
    0
    Адрес:
    Россия, Самарская обл, Сызрань
    Все работает отлично. Накидал приблизительную таблицу БД судя по твоим описаниям:
    Код (Text):
    1. CREATE TABLE `test` (
    2.   `id` int(11) NOT NULL AUTO_INCREMENT,
    3.   `nop` int(11) NOT NULL,
    4.   `name` varchar(30) NOT NULL,
    5.   `lastname` varchar(30) NOT NULL,
    6.   `email` varchar(30) NOT NULL,
    7.   `age` int(3) NOT NULL,
    8.   `ip` varchar(16) NOT NULL,
    9.   `ipserv` varchar(16) NOT NULL,
    10.   `proc` int(11) NOT NULL,
    11.   PRIMARY KEY (`id`)
    12. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    Затем простенькую форму и php-скрипт где инсерт делается. Все отлично работает.
    Код (Text):
    1. <?php
    2. if($_POST['write'])
    3. {
    4.     $name = $_POST['name'];
    5.     $lastname = $_POST['lastname'];
    6.     $email = $_POST['email'];
    7.     $age = $_POST['age'];
    8.     $ip = $_POST['ip'];
    9.     $ipserv = $_POST['ipserv'];
    10.  
    11.     mysql_connect("127.0.0.1","root","") or die("connection has been lost");
    12.     mysql_select_db("test") or die("db doesn't exists");
    13.     $nop = 1; // так и не понял для чего это
    14.     $max = 57; //не знаю что такое max, но пусть оно будет равно 57 ))
    15.     $a = 18; //тоже непонятная переменная, = 18
    16.     $proc = $max/100*$a1;
    17.     $query = "INSERT INTO `test`(nop,name,lastname,email,age,ip,ipserv,proc) VALUES('$nop','$name','$lastname','$email','$age','$ip','$ipserv','$proc')";
    18.     $res = mysql_query($query);
    19.     if(!$res)
    20.     {
    21.         echo "INSERT HAS BEEN FAILED";
    22.     }
    23. }
    24. ?>
    25. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    26.     <ul style="list-style: none; padding: 5px; margin: 5px;">
    27.     <li><input type="text" name="name"></li>
    28.     <li><input type="text" name="lastname"></li>
    29.     <li><input type="text" name="email"></li>
    30.     <li><input type="text" name="age"></li>
    31.     <li><input type="checkbox" name="write"> ADD RECORD </li>
    32.     </ul>
    33.     <input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
    34.     <input type="hidden" name="ipserv" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>">
    35.     <input style="margin: 10px; padding: 5px;" type="submit" value="CREATE">
    36. </form>
    Конечно, некоторые переменные для меня загадкой остались также как и зачем записывать текущий возраст в таблицу, а не дату рождения, но тем не менее скрипт выше работает. Выполни sql-запрос в чем-нить(да хоть phpmyadmin), мне вот например dreamcoder for mysql нравится. Чекбокс - разрешение записи. Все работает ок. Если что - обращайся. Удачи)