PDO возвращает один результат, как вернуть другую запись из 1 столбца нескольких строк
Я делаю пользовательскую карту сайта из своей базы данных и застрял со следующей проблемой
SQL-запрос:
SELECT term_id FROM wp_term_taxonomy WHERE taxonomy="product-cat" || taxonomy="product-brand"
Результат Запроса
========= term_id ========= | 365 | | 369 | | 370 |
Он возвращает все term_id из моей базы данных, через которую я собираю слизни категорий из другой таблицы,чтобы сделать URL-адреса sitemap. Ниже приведен код, и он отлично работает, как вы можете видеть в (вывод sitemap), но, к сожалению, я можете извлекать следующие двигатели СМД-подряд & он показывает всегда одно и то же двигатели СМД - для меня в результате "тот же URL-адрес"
Мой Вывод Карты Сайта
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <url> <loc> http://domain.com/search-page/?product-cat=mobiles-tablets 365 </loc> <changefreq>always</changefreq> <priority>1.0</priority> </url> <url> <loc> http://domain.com/search-page/?product-cat=mobiles-tablets 365 </loc> <changefreq>always</changefreq> <priority>1.0</priority> </url> </urlset>
МОЙ КОД
<?php header("Content-type: text/xml"); $i=0; $xml = '<?xml version="1.0" encoding="UTF-8"?>'; $xml.= "\n".'<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; $db = new PDO('mysql:host=xxx;dbname=xxx', 'xx', 'xxx'); $stmt[$i] = $db->query('SELECT count(*) FROM wp_term_taxonomy WHERE taxonomy="product-cat" || taxonomy="product-brand"'); $rowcount = $stmt[$i]->fetchColumn(); for ($i=0; $i<2; $i++) { $sth[$i] = $db->query('SELECT term_id FROM wp_term_taxonomy WHERE taxonomy="product-cat" || taxonomy="product-brand"'); $t_id[$i] = $sth[$i]->fetchColumn(); $stmt[$i] = $db->query('SELECT taxonomy FROM wp_term_taxonomy WHERE term_id = '.$t_id[$i].''); $t_taxonomy[$i] = $stmt[$i]->fetchColumn(); $stmt[$i] = $db->query('SELECT slug FROM wp_terms WHERE term_id = '.$t_id[$i].''); $t_slug[$i] = $stmt[$i]->fetchColumn(); } echo $xml; for ($i=0; $i<2; $i++) { $xml.= "\n\t\t".'<url>'."\n"; $xml.= "\t\t\t".'<loc>'."http://domain.com/search-page/?$t_taxonomy[$i]=$t_slug[$i]"."\t$t_id[$i]\t$i\t$rowcount".'</loc>'; $xml.= "\n\t\t\t".'<changefreq>always</changefreq>'; $xml.= "\n\t\t\t".'<priority>1.0</priority>'; $xml.= "\n\t\t".'</url>'."\n"; } ?> <?php $xml.= "\n".'</urlset>'; $handle = fopen('sitemap_custom.xml','w+'); fwrite($handle,$xml); fclose($handle); ?>
Что я уже пробовал:
Что Мне Нужно?
Я хочу извлечь следующую строку term_id (идеально, если она основана на цикле[0,1,2]) прямо сейчас она показывает мне только результат term_id=365
Mohibur Rashid
Ваш алгоритм неправильный
$л = $дБ-&ГТ;запрос('двигатели СМД-выберите из wp_term_taxonomy, где таксономия="продукт-кошка" || таксономия="продукт-бренд"');
$t_id = $sth- & gt;fetchColumn();
$прибытие=[];
for ($i=0; $i< length($t_id); $i++) {
$параметр stmt = $дБ-и GT;выберите таксономии запросов (от wp_term_taxonomy, где двигатели СМД -='. $t_id[$я]".);
$t_taxonomy = $stmt- & gt;fetchColumn();
$параметр stmt = $дБ-и GT;выбрать пуля запросов (от wp_terms, где двигатели СМД -='. $t_id[$я]".);
$t_slug = $stmt- & gt;fetchColumn();
массив $arr[$я]["двигатели СМД -"]=t_id[$я];
$arr[$i] ["таксономия"]=$t_taxonomy[0];
$arr[$i] ["slug"]=$t_slug[0];
}
однако попробуйте выполнить следующий запрос
Выберите.двигатели СМД -, а.таксономия, б.пуля из wp_term_taxonomy соединения wp_terms B на(а.двигатели СМД - = б.двигатели СМД -) где таксономия="продукт-кошка" || таксономия="продукт-бренд"
Member 13267099
Фатальная ошибка: вызов функции-члена fetchColumn() на не-объекте в строке 15
Member 13267099
В дальнейшем,
Я использовал также
$СТГ[$я] = $дБ-&ГТ;подготовить("двигатели СМД-выберите из wp_term_taxonomy, где продукт-кот таксономии='продукт-бренд' || таксономия=''");
$sth[$i] - & gt;выполнить();
$result[$i] = $sth[$i]- & gt;fetchAll();
print_r($результат[$я])
и это возвращает мне вывод:
Массив
(
[0] => массив
(
[term_id] = & gt; 365
[0] = & gt; 365
)
[1] => массив
(
[term_id] => 369
[0] => 369
)
}
но я не могу извлечь term_id из каждого массива
Mohibur Rashid
может быть вам нужно изучить PHP массив firt