За последние 24 часа нас посетил 18991 программист и 1634 робота. Сейчас ищут 885 программистов ...

Не заполняется столбец в базе данных

Тема в разделе "PHP и базы данных", создана пользователем Aigul, 21 окт 2015.

  1. Aigul

    Aigul Новичок

    С нами с:
    21 окт 2015
    Сообщения:
    5
    Симпатии:
    0
    Добрый день)Помогите новичку. Делаю бан пользователя на некоторое количество дней. Отправляю через форму данные:
    Код (PHP):
    1.     echo 'Выберите риелтора:<form action="ban_rieltor.php" method=POST><br>';
    2.                 $workers_query = "select * from `p_users`";
    3.                 $worker_res = mysql_query($workers_query) or die("Ошибка");
    4.                 
    5.                 $ban_query = "select * from `p_users_ban` 
    6.                 where `pub_user_id` = 1";
    7.                 $ban_res = mysql_query($ban_query) or die("Ошибка");
    8.                 $ban_row = mysql_fetch_array($ban_res);
    9.                 echo '<table><tr><th>Риелтор</th><th>На ... дней:</th><th>Забанить</th><th>Разбанить</th></tr>';
    10.                 while ($worker_row = mysql_fetch_array($worker_res)){
    11.                     $rieltor = $worker_row['p_user_fname']." ".mb_substr($worker_row['p_user_lname'], 0, 1).". ".mb_substr($worker_row['p_user_sname'], 0, 1).".";
    12.                     echo '<tr><td valign=top>'.$rieltor.'</td>
    13.                     <td><input type=text name="ban_time">дней</td>
    14.                     <td><input type="checkbox" name="ban_name" value="'.$worker_row['p_user_id'].'"></td>
    15.                     <td><input type="checkbox" name="reban_name" value="'.$worker_row['p_user_id'].'">';
    16.                     echo '</td>';
    17.                 }
    18.                 echo '<input type=submit value="OK"><br>';
    19.            echo '</form></td><tr>'; 
    на другой странице отправляю данные в таблицу:
    Код (PHP):
    1.     if (isset($_POST['ban_name'])){    
    2.     $n = $_POST['ban_time'];
    3.     $time = now()+ (time()+3600*24*$n));
    4.     $query = "update `p_users_ban` set `pub_user_id` = 1, `pub_time` = '".$time."' where `pub_user` = '".$_POST['ban_name']."'";
    5.     $res = mysql_query($query) or die(mysql_error());
    6.     echo ' Вы успешно забанили пользователей!';
    7.     }
    8.     
    9.     if (isset($_POST['reban_name'])){
    10.     $query = "update `p_users_ban` set `pub_user_id` = 0 where `pub_user` = '".$_POST['reban_name']."'";
    11.     $res = mysql_query($query) or die("Ошибка");
    12.     echo 'Вы успешно разбанили пользователей';    
    13.     } 
    В итоге в таблице заполняется столбец 'pub_user_id', но 'pub_time' нет.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    молодец.

    проверяй в каком виде приходит "на сколько дней забанить", приходит ли вообще.
    потом проверяй записывается ли в том формате, в которым ты передаешь в БД данная запись.

    Добавлено спустя 17 секунд:
    а так же включи вывод ошибок, может поможет.
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    а так же проверь конечный запрос проверь, что ты там в БД отправляешь.
     
  4. Aigul

    Aigul Новичок

    С нами с:
    21 окт 2015
    Сообщения:
    5
    Симпатии:
    0
    Пробую сделать так, но все равно не заполняется столбец
    Код (PHP):
    1. echo '<div id="page"><div id="left-side">';
    2.     echo left_menu_test(user_info('p_user_job'));
    3.     echo '</div><div id="right-side">';
    4.     //$n_u = check($_POST['ban_time']);
    5.     //$time = now()+ (time()+3600*24*$n));
    6.     //$time = date('Y-m-d', strtotime ('+'.$n.' day'));
    7.     //echo ''$time'';
    8.     $time_query = "update `p_users_ban` set `pub_time` = 1 where `pub_user` = '".$_POST['ban_name']."'";
    9.     $time_res = mysql_query($time_query) or die(mysql_error());
    10.     if (isset($_POST['ban_name'])){    
    11.     $query = "update `p_users_ban` set `pub_user_id` = 1 where `pub_user` = '".$_POST['ban_name']."'";
    12.     $res = mysql_query($query) or die(mysql_error());
    13.     echo ' Вы успешно забанили '$time' пользователей!';
    14.     } 
    То есть отправляю в базу не то, что введено, а определенное значение.
    И, кстати, в phpmyadmin выходит ошибка "Фатальная ошибка javascript" что это?и как с этим бороться?

    Добавлено спустя 4 минуты 16 секунд:
    А как это делать?

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (PHP):
    1. echo $query; 
    до
    Код (PHP):
    1. mysql_query($query); 
    а потом зайди в phpmyadmin и попробуй вставить в БД через phpmyadmin.
     
  6. Aigul

    Aigul Новичок

    С нами с:
    21 окт 2015
    Сообщения:
    5
    Симпатии:
    0
    Сделала так:
    Код (PHP):
    1. echo '<table><tr><th>Риелтор</th><th>На ... дней:</th><th>Забанить</th><th>Разбанить</th></tr>';
    2.                 while ($worker_row = mysql_fetch_array($worker_res)){
    3.                     $rieltor = $worker_row['p_user_fname']." ".mb_substr($worker_row['p_user_lname'], 0, 1).". ".mb_substr($worker_row['p_user_sname'], 0, 1).".";
    4.                     echo '<tr><td valign=top>'.$rieltor.'</td>
    5.                     <td><input type="text" name="ban_time"></td>
    6.                     <td><input type="checkbox" name="ban_name" value="'.$worker_row['p_user_id'].'"></td>
    7.                     <td><input type="checkbox" name="reban_name" value="'.$worker_row['p_user_id'].'">';
    8.                     
    9.                     //else '<input type="checkbox" name="reban_name" value="'.$worker_row['p_user_id'].'">';
    10.                     echo '</td>'; 
    и в обработчике:
    Код (PHP):
    1.     if (isset($_POST['ban_time']) and isset($_POST['ban_name'])){    
    2.     $query = "update `p_users_ban` set `pub_user_id` = 1 where `pub_user` = '".$_POST['ban_name']."'";
    3.     echo $query;
    4.     $res = mysql_query($query) or die(mysql_error());
    5.     $time =  check($_POST['ban_time']);
    6.         $time_query = "update `p_users_ban` set `pub_time`=".$time.
    7.         where `pub_user`='".$_POST['ban_name']."'";
    8.     echo $time_query;
    9.     $time_res = mysql_query($time_query) or die(mysql_error());
    10.     echo ' Вы успешно забанили пользователей!';
    11.     } 
    Код (PHP):
    1. mysql_query($query); 
    Выводит: update `p_users_ban` set `pub_user_id` = 1 where `pub_user` = '36'update `p_users_ban` set `pub_time`= where `pub_user`='36'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 'where `pub_user`='36'' at line 2

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  7. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    ну так sql-запрос сформирован криво же, видно ((:)
     
  8. Aigul

    Aigul Новичок

    С нами с:
    21 окт 2015
    Сообщения:
    5
    Симпатии:
    0
    Исправила : `pub_time`='".$time."' ошибки нет, но `pub_time`= все равно пустой
     
  9. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    значить надо проверить check($_POST['ban_time']); (;