Я пытаюсь выполнить итерацию по строкам в таблице phpbb phpbb_posts и извлечь каждую запись в столбце post_subject phpbb и сравнить ее значение с предопределенной строкой в Wordpress PHP-файле, но у меня есть некоторые проблемы - выражения не оцениваются как true.
Мои таблицы phpBB установлены в базе данных WP, поэтому у меня есть полный доступ к значениям.
См. Приведенный ниже код, чтобы продемонстрировать проблему, которую я испытываю.
function matchPhpBBTopic()
{
global $wpdb;
$wp_post_title_string = get_the_title();
$result = $wpdb->get_results("SELECT * FROM phpbb_posts");
foreach($result as $row)
{
$phpbb_post_title_array = array($row->post_subject);
$phpbb_post_title_string = implode("", $phpbb_post_title_array);
// One of the values in $row->post_subject contains
// the value in $wp_post_title_string
if (strcmp($wp_post_title_string, $phpbb_post_title_string) == 0)
{
// This line never runs but the $wp_post_title_string value
// is there, in the table, I've printed it and it's there
echo 'We found a match!<br>';
}
}
}
Любая помощь будет оценена по достоинству.
Итак, другими слова, у меня есть тема размещена в WP и я точно ту же тему размещена в PHPBB, и я хочу перебирать стол PHPBB и когда я нахожу эту тему, я хочу, чтобы запустить код , Я не понимаю, почему выражение «if» не запускается.
Эй, я действительно пробовал ==, а также ==== и trim(). Я * знаю * значение присутствует в таблице, потому что я распечатываю значения (только что показанные в приведенном выше примере). Таким образом, $ wp_post_title_string содержит «Test», а $ phpbb_post_title_string содержит «Test». Нет пробелов, нет разного характера, и все же я не могу заставить его возвращать true. Я не знаю почему. Я даже попробовал strpos(), и он не нашел строку, это странно. – rwx
Но вот самая странная часть, если вы делаете strpos ($ wp_post_title_string, «Test»), которая вернет true, но если вы сделаете strpos ($ wp_post_title_string, $ phpbb_post_title_string), хотя $ phpbb_post_title_string содержит «Test», он возвращает false. Что здесь происходит? Что мне не хватает? – rwx
Прочитайте первые две строки в цикле foreach. Вы создаете массив, а затем вставляете массив. Попробуйте var_dump два значения, когда вы входите в цикл, а затем умираете. Вы точно увидите, что они собой представляют. Вероятно, вы могли бы сделать что-то вроде if ($ wp_post_title_string == $ row ['post_subject']) Удалите эти первые две строки в цикле. Когда вы выполните var_dump, вы, вероятно, обнаружите, что одна переменная по-прежнему является массивом или неопределенна, потому что вы используете объектную нотацию на том, что, вероятно, является массивом. – Darius