A quick and easy method to generate a sitemap file from a PHP PDO select query with a foreach loop to add each URL into the sitemap.xml
This is all done using the PHP SimpleXmlElement class
<?php $select_all = $db_connect()->query("SELECT `id`, `created_at` FROM `posts`;"); $posts = $select_all->fetchAll(PDO::FETCH_ASSOC); $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>'); $index = $xml->addChild('url'); $index->addChild('loc', 'https://website.com/');//Add the home URL $index->addChild('lastmod', '2023-08-20 10:00:00'); $index->addChild('changefreq', 'monthly'); $index->addChild('priority', '0.8'); foreach ($posts as $post) {//Loop through the posts $element = $xml->addChild('url'); $element->addChild('loc', "https://website.com/post/{$post['id']}"); $element->addChild('lastmod', $post['created_at']); $element->addChild('changefreq', 'monthly'); $element->addChild('priority', '0.5'); } $xml->asXML('sitemap.xml');//Write sitemap to file