За последние 24 часа нас посетили 53876 программистов и 1715 роботов. Сейчас ищет 931 программист ...

Не добавляется запрос в БД при нажатии кнопки

Тема в разделе "PHP для новичков", создана пользователем StepanAMK, 2 сен 2016.

  1. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    PHP:
    1. if ($clan_memb['rank'] == 4){
    2.        
    3.     ?>  
    4.     <div class='separ'></div>
    5.   <center><a class='btn' href='/clanland.php?start_poxod=true'><span class='end'><span class='label'><img src='/images/icon/arrow.png' alt='*'/> Начать поход</a></span></span></center>
    6.     <?
    7.    
    8.    
    9.     if ($_GET['start_poxod'] == true){
    10.        
    11.         mysql_query("UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'");
    12.         $time_msg = 'Битва началась <br><a class=\'btn\' href=/clanland.php><span class=\'end\'><span class=\'label\'>Присоедениться</a></span></span><br>';
    13.         mysql_query("INSERT INTO clan_msg SET clan = '".$clan['id']."', user = '".$user['id']."', text = '".$time_msg."', time = '".time()."'");  
    14.     }
    15.     }
    при на житии кнопки "Начать поход" должен создасца таблица в БД "mysql_query("UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'");"
    Но что то не так не могу понять
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Запись в таблице, а не создание таблицы.

    Посмотри что возвращает mysql_query, там в документации есть описание, что и когда.

    Ещё сделал бы так:
    Код (Text):
    1. echo "UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'";
    полученный запрос, попробуй выполнить в PHPMyAdmin, посмотри, что он ответит.

    То есть, займись отладкой.

    debug
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
    https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    /clanland.php?start_poxod

    isset ( $_GET['start_poxod'] )
     
  4. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    ох....
    Да всё тут не так...
    PHP:
    1. mysql_query("UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'");
    Подготоветиельные запросы? Нету.
    mysql устарела функция, пора бы перейти на mysqli или pdo... Я использую последние, для меня более интуитивно.
    --- Добавлено ---
    PHP:
    1. if ($_GET['start_poxod'] == true){
    2.      
    3.        mysql_query("UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'");
    4.        $time_msg = 'Битва началась <br><a class=\'btn\' href=/clanland.php><span class=\'end\'><span class=\'label\'>Присоедениться</a></span></span><br>';
    5.        mysql_query("INSERT INTO clan_msg SET clan = '".$clan['id']."', user = '".$user['id']."', text = '".$time_msg."', time = '".time()."'");
    6.    }
    не вереное условие в принципе(Оно не отработает тем образом каким хочешь ты), если начать читать например какие нибудь книжки по программированию, чтобы узнать boolen это или нет требуется сравнение по типу! То есть три равно ===
    например :
    PHP:
    1. $boolen = true;
    2. if($boolen === true) {
    3.     // такое условие для типа boolen будет верным
    4. }
    вот ссылка на типы переменных.
    http://php720.com/lesson/6

    вот про операторы сравнения
    http://php720.com/lesson/15

    а вот познавательная статья на хабре
    https://habrahabr.ru/post/113253/
     
  5. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну $_GET['start_poxod'] строго сравнивать с true нет смысла, он никогда не будет строго равен true, там же строки. А вот нестрого - вполне, зря ты. Если там будет "1" или "ывыаы", или всё, что угодно, кроме пустой строки и "0", условие выполнится. Так что вполне логично так сделать. Только можно проще написать
    PHP:
    1. if ($_GET['start-poxod'])
     
    askanim нравится это.
  6. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @mkramer тогда не вижу смысла писать. Просто == true . Но всё таки информация для него по статьям, будет полезна.
    --- Добавлено ---
    @mkramer а если у него там ссылка аля ?start-poxod=true
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    PHP:
    1. "true" == true
    2. // но и
    3. "false" == true
     
  8. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @mkramer

    ты думаешь я этого не знал? ;D
    то почитай выше я ему на этот случай и сказал вангую у него там именно так

     
  9. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    Неработает
    --- Добавлено ---
    Спасибо за информацию. почитаю как время будет. обротился сюда за готовым ответом
     
  10. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Тогда ты ошибся разделом! Есть раздел сделайте за меня, вот там пиши что тебе надо сделать. И может быть будет готовый ответ.
     
  11. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    Спасибо за информаци.
    --- Добавлено ---
    ну я скорее всего не так выразился, не сделать за меня а обьяснить что к чему. ссылки я твои обезательно прочту, буду надеется найду на свой вопрос ответ там
    --- Добавлено ---
    PHP:
    1. $boolen = true;
    2. if($boolen === true) {
    3.     // такое условие для типа boolen будет верным
    4. }
    А в запросе то что писать? вот тут ( <a class='btn' href='/clanland.php?start_poxod=true'>)
     
  12. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @StepanAMK оставь запрос как есть. он как раз для моего условия.
     
  13. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    Тоесть вот так мне нужно сделать
    PHP:
    1. $boolen = true;
    2. if($boolen === true) {
    3.         mysql_query("UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'");
    4.         $time_msg = 'Поход началася <br><a class=\'btn\' href=/clanland.php><span class=\'end\'><span class=\'label\'>Присоедениться</a></span></span><br>';
    5.         mysql_query("INSERT INTO clan_msg SET clan = '".$clan['id']."', user = '".$user['id']."', text = '".$time_msg."', time = '".time()."'");  
    6.  
    7. }
     
  14. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    такие вещи лучше в транзакции брать, и проверять каждый результат, который ты просто заигнорил.
     
    denis01 нравится это.
  15. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    условие работает, не работает у тебя
    или БД

    Пробуй...
    PHP:
    1. <?php
    2. var_dump("!!!!!!!!clan_memb-rank = {$clan_memb['rank']}!!!!!!!!!!");
    3. if ($clan_memb['rank'] == 4)
    4. {
    5.      
    6.     ?>
    7.     <div class='separ'></div>
    8.   <center><a class='btn' href='/clanland.php?start_poxod'><span class='end'><span class='label'><img src='/images/icon/arrow.png' alt='*'/> Начать поход</a></span></span></center>
    9.     <?
    10.  
    11.  
    12.     if ( isset ( $_GET['start_poxod'] ) )
    13. {
    14.      
    15.         var_dump("!!!!!!!!start_poxod!!!!!!!!!!");
    16.     }
    17.     }
     
  16. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @StepanAMK ты пробуй. Не спрашивай а пробуй и говори получилось или нет ;) А вообще если ты сравниваешь тип boolen с boolen(т.есть это твой случай исходя из значения в гете) и хочешь в результате получить верное условие, то оператор сравнения должен быть === (иначе у тебя будет всегда false)
    --- Добавлено ---
    @MAN_IFE_ST тогда в твоём случае будет любое значение $_GET['start_poxod'] верным, даже если я туда введу syka90128498tanalpornoset
     
  17. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    а нафиг ты будешь вводить любой ПорНоСеТ, если мы в ссылке индификатор ?start_poxod ставим/убираем. Ты этого не знал скажешь ?
     
    #17 MouseZver, 3 сен 2016
    Последнее редактирование: 3 сен 2016
  18. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    неполучается
     
  19. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    детский сад, ей богу
     
  20. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    if ($clan_memb['rank'] == 4){ тут всё ок, а вот твоё не пашет
     
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    что выводит VAR_DUMP ?
    --------------------------------
    Легкий исход темы - TeamViewer

    или пойду пить пиво.
     
    #21 MouseZver, 3 сен 2016
    Последнее редактирование: 3 сен 2016
  22. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    при нажитии вот эта строка появляется ar_dump("!!!!!!!!start_poxod!!!!!!!!!!")
     
  23. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.818
    Симпатии:
    1.333
    Адрес:
    Лень
    вот оно... теперь тему смикаешь? все пропускает на ура, но.. с запросами беда.

    чини mysql_query

    как у тебя создается таблица или создана она вовсе ? когда ты в уже созданную таблицу добавляешь новые записи INSERT INTO

    Это не CREATE TABLE

    p.s:
    PHP:
    1. <?
    2. ini_set ( 'display_errors', 1 );
    3. error_reporting ( E_ALL );
    4. ini_set ( 'html_errors', FALSE );
     
  24. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    я правельно тебя понял нет mysql_query("UPDATE clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'"); а mysql_query("INSERT INTO clan_poxod_open SET start = '1' WHERE clan = '".$clan['id']."'");
    --- Добавлено ---
    вот что щас мне пишет при нажатии bool(false)
    --- Добавлено ---
    лучше б делал блин через sumbit)
    --- Добавлено ---
    Вот так вот делаю
    $start == mysql_query("INSERT INTO 'clan_poxod_open' SET start = '1' WHERE clan = '".$clan['id']."'");

    var_dump("clan_memb_rank = {$clan_memb['rank']}");

    if ($clan_memb['rank'] == 4)
    {

    ?>
    <div class='separ'></div>
    <center><a class='btn' href='/clanland/?start_poxod'><span class='end'><span class='label'><img src='/images/icon/arrow.png' alt='*'/> Начать поход</a></span></span></center>
    <?


    if ( isset ( $_GET['start_poxod'] ) )
    {

    var_dump == ($start);
    }
     
  25. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @StepanAMK ..... <a class='btn' href='/clanland/?start_poxod=true'> сделай и моё условие сработает, а дальше просто в условии echo 'ку ку '; напиши