• Доброго времени суток, хочу сделать на сайте кнопку (написанную на странице в области «текст» (для кода) можно ли так вообще?), которая при нажатии будет «обновлять» какие-то записи в бд (есть таблица, в которой чтобы «поднять» строчку на 1 позицию, её нужно обновить). Такой вопрос, можно ли писать php коды на «текстовой» (кодовой) части страницы содержания, также совместно с SQL? Я пытался создать что-то подобно, но не вышло. Возможно ли такое, если да, то как правильно это сделать, если нет, то какие альтернативные варианты можно придумать?

Просмотр 15 ответов — с 1 по 15 (всего 29)
  • Модератор Yui

    (@fierevere)

    永子

    используйте шорткоды для вызова какого-либо кода со страницы
    https://codex.wordpress.org/ru:Shortcode_API

    Извиняюсь, конечно, но я там так и не увидел ответ насчет пхп и sql, может просто не заметил?

    <!doctype html>
    <head>
    <title>Панель</title>
    </head>
    <body>
    <?php
        $host="localhost";   
        $user="root";       
        $pass="";           
        $db_name="my_db";    
        $link=mysql_connect($host,$user,$pass); 
        mysql_select_db($db_name,$link); 
        $db_table = "mytable";
        
        if (isset($_GET['del_id'])) { 
            $sql = mysql_query('DELETE FROM <code>products</code> WHERE <code>ID</code> = '.$_GET['del_id']);
        }
        
        if (isset($_GET['red_id'])) { 
            if (isset($_POST['Name'])) { 
                $sql = mysql_query('UPDATE <code>products</code> SET '
                        .'<code>Name</code> = "'.$_POST['Name'].'",'
                        .'<code>Price</code> = '.$_POST['Price'].' '
                        .'WHERE <code>ID</code> = '.$_GET['red_id']);
            }
        }
    ?>

    Вот к примеру то, что мне нужно (код изменю для своих нужд, тут и не всё, для примера), но мне надо, чтобы была кнопка, при которой на нажатие выполнялся sql запрос в бд, но просто взять и засунуть код в «текст» нельзя

    • Ответ изменён 6 лет, 7 месяцев назад пользователем Yui. Причина: для оформления кода есть соотв. кнопочка code

    Если я правильно понял Вам нужен save_post.

    Однако я не понял смысла сего мероприятия. Где нужна эта «кнопка»? зачем? Почему не устраивает стандартная «обновить»?
    И вообще что бы обновлять нужно ж это изменить. А значит нужна форма редактора. И тогда задача становиться совершенно другой..

    Есть таблица, которые выводит инфу с бд, я хочу создать для каждого пользователя, чтобы он мог поднимать свои записи на 1 позицию, когда они, из-за других пользователей (которые сами добавили свои записи), опустились ниже

    Если пользователь имеет доступ к изменению постов, значит ему доступен и редактор и кнопка «обновить». Посему так и непонятны ваши задумки.

    Да, но я хочу УПРОСТИТЬ пользователю задачу, если у него 10 записей, то это надо будет каждую тыкать в редактировании, а нажать на 1 кнопку, которая отправит sql запрос в бд для его записей будет гораздо проще

    Т.е. сделать 3 клика — это Вашим пользователям сложно?

    Ну тогда.. см выше.

    Нет, я не собираюсь давать пользователю какой-либо доступ, вся редакция во фронтенде, и «записи» не такие, они как строчки в бд

    вся редакция во фронтенде,

    аналогично делается и на фронте.

    «записи» не такие, они как строчки в бд

    Я Вас удивлю, но все «записи» (и не только записи) — это «строчки в БД»

    )))
    Может, перестанете спрашивать «зачем мне это?» и скажете как мне впихнуть код в кнопку в «текст»?

    Может, перестанете спрашивать «зачем мне это?» и скажете как мне впихнуть код в кнопку в «текст»?

    Чтобы дать правильный ответ — нужно понять задачу.
    А так-то я уже сказал.

    ЗЫ. Вопрос чем-то напоминает задачу о красной кнопке. 🙂

    Ок…
    Есть страница на сайте, на этой странице есть таблица, в которой есть строки…
    Строки эти добавляет сам юзер https://ibb.co/fEBiL0. Как видите на скриншоте в этой таблице «строки» от 1 компании, а здесь меню этой компании https://ibb.co/jx6iL0.
    Представим ситуацию, данная компания добавила 5 записей, 2 компания тоже добавила 10 записей а так груговорот, значит, данные 1 компании находятся в самом конце таблицы, чтобы поднять запись, в ней необходимо «что-то» изменить, в данный момент само логично это изменить в них тип «timestamp», где будет обновляться данные на текущие секунды. Я хочу сделать кнопку, допустим над полем «Редактировать», где при нажатии будет отправляться SQL запрос, где определяет «display_name» юзера и ищет в этой таблице такие же значения в этой таблице в бд (они есть) и обновляет именно данного тыкавшего юзера типа «timestamp» (код на всё это есть), куда его втюривать?
    P.s наложу на кнопку кд в Х время ограничения ее нажиманию

    И еще такой вопрос, т.к WP сам коннектит БД, то выполнять коннект запрос не нужно, так?

    Модератор Юрій

    (@yube)

    куда его втюривать?

    Канонический способ создания «кнопки» описан тут: https://codex.wordpress.org/AJAX_in_Plugins

    выполнять коннект запрос не нужно, так?

    Не только не нужно, но и вредно. Правильнее использовать глобальный объект $wpdb.

Просмотр 15 ответов — с 1 по 15 (всего 29)
  • Тема «Кнопка, которая выполняет «действия» в бд» закрыта для новых ответов.