Sitemap en php
Résolu
Bonjour, j'essai de faire un sitemap de mon site en allant chercher la Reference dans une base de données, il me semble que ce code devrait fonctionner. Est-ce que j'ai trop de références dans la bd ( environ 12000 )
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">';
$sql = 'SELECT Reference FROM personnes';
$ref = lect_sql($sql);
$resultat = $ref->fetch(PDO::FETCH_ASSOC);
foreach($resultat AS $Num) {
$xml .= '
<url>
<loc>Fiche_Fam_Pers.php?Refer='.$Num->Reference.'</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>';
}
$xml .= '</urlset>';
$file = fopen('sitemap.xml', 'r+');
fputs($file, $xml);
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">';
$sql = 'SELECT Reference FROM personnes';
$ref = lect_sql($sql);
$resultat = $ref->fetch(PDO::FETCH_ASSOC);
foreach($resultat AS $Num) {
$xml .= '
<url>
<loc>Fiche_Fam_Pers.php?Refer='.$Num->Reference.'</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>';
}
$xml .= '</urlset>';
$file = fopen('sitemap.xml', 'r+');
fputs($file, $xml);
1 réponse
-
Contributeur1° peux-tu utiliser la coloration syntaxique quand tu partages du code?
2° pourquoi mentionnes-tu "devrait fonctionner" et "trop de références": message d'erreur, comportement inattendu? penses-tu avoir partagé toutes les information utiles?-
-
Contributeur@info1121as-tu fait print_r de $resultat juste après le fetch, et de $xml après le foreach?
as-tu vérifié combien de fois le foreach s’exécutait, par exemple en faisant un echo à chaque tour? -
-
Contributeur@info1121ce n'est probablement pas approprié. cependant, nous ignorons ce que retourne lect_sql. as-tu fait print_r de $ref?
-
Bonjour, lect_sql est une fonction créée dans un autre fichier pour ouvrir et lire dans ma bd.
J'ai changé le foreach par un While et changé le fetch comme ceci et cela fonctionne parfaitement.
Merci
while ($row = $ref->fetch()){
$xml .= '
<url>
<loc>Fiche_Fam_Pers.php?Refer='.$row['Reference'].'</loc>
</url>';
}
-