Отображение поля данных от mySQL в WP Shortcode - PullRequest
1 голос
/ 23 февраля 2020

Я пытаюсь отобразить полевые данные во внешнем интерфейсе WP, используя шорткоды из новой таблицы.

См. Таблицу

После обнаружения множества источников и исследований, Кажется, я не нахожу простой способ отображения данных в тексте (не в таблице), содержащихся в указанном c поле, выбранном в запросе SQL с помощью SELECT FRER WHERE.

Пока что я вызвал wpdb, выбрал поле, создал al oop и повторил. Но результаты не отображаются. Я также пытался использовать print_r и implode, но оба не удалось.

<?php
function Initial_Brief(){ global $wpdb;
    $results = $wpdb->prepare( "SELECT 'Initial_Brief'* FROM `Portal_100` WHERE Project_Title = 'Project 1'");
        foreach ($results as $result)
        echo $result['results'];
}
add_shortcode('Initial_Brief','Initial_Brief')
?>

Заранее большое спасибо,

Разделить логику c этого, что я считаю довольно мощным, - это используйте шорткоды для отображения всего текста на веб-сайте, позволяя редактировать текст из внешнего интерфейса путем создания формы HTML, которая обновляет поле спецификаций c. Я создам значок редактирования, отображаемый при наведении курсора на роль редактора, по щелчку которого вызывается всплывающее окно с формой html, которая вызывает функцию для обновления поля спецификаций c в базе данных.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

После нескольких итераций я наконец-то заставил его работать!

Я так понял mySQL не принимает ввод с пробелом? Как я могу вставить условие WHERE для нескольких слов или абзаца?

Это сработало для меня, используя следующий скрипт, но мне пришлось изменить значение WHERE на целое число.

<?php
add_shortcode('Initial_Brief', function(){
global $wpdb;
$sql = $wpdb->prepare("Select Value from `P100` WHERE `P100`.`id` = 1 ");
$results = $wpdb->get_results( $sql , ARRAY_A );
foreach ($results as $result) {
$display = implode(", ", $result);
echo $display;
});?>
0 голосов
/ 24 февраля 2020

Вы не можете вызвать метод get_results следующим образом:

<?php
global $wpdb;
$id = 23;
$sql = $wpdb->prepare( "SELECT * FROM tablename WHERE id= %d",$id);
$results = $wpdb->get_results( $sql , ARRAY_A );
?>

Использование метода prepare является хорошей практикой для подготовки SQL запрос на безопасное выполнение (например, preempt SQL инъекция), но это еще не выполнение, он возвращает очищенную строку запроса, если есть запрос для подготовки. Это также хороший компаньон для метода query .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...