Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá estou com uma duvida, sobre uma consulta para um sitemap no mysql,
como já sabem Sitemap so podem conter no máximo 50,000 URLS
eis a consulta
**SELECT * FROM sitemap ORDER BY id DESC LIMIT 49000**
esse funciona normalmente, mais tenho 380,000 urls no banco de dados, quero exibir elas apos o id 50,000
mais não sei como fazer isso, e nem sei o nome dessa função se ninguém me entendeu vou tentar simplificar
**SELECT * FROM sitemap ORDER BY id DESC LIMIT 49000 SELECIONA APARTIR DO ID 51,000**
tem que ser algo assim ou parecido obrigado.
Não deu amigo ta do mesmo jeito
fazendo a consulta apartir do id 1
olhe ai meu código
<?php
ini_set( 'default_charset', 'utf-8');
require_once ("config.php");
mysql_connect( $database_host, $database_username, $database_password ) OR DIE( 'Cannot connect to mysql database host' );
mysql_select_db( $database_name ) OR DIE( 'Cannot connect to the database' );
$urlll = $_SERVER['HTTP_HOST'];
header ("Content-type: text/xml");
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
';
echo "<url>
";
echo "<loc>[http://$urlll/](http://%24urlll/)
";
echo "<changefreq>daily</changefreq>
";
echo "<priority>1.0</priority>
";
echo "</url>
";
$sql = "SELECT * FROM sitemap WHERE id > 51000 ORDER BY id DESC LIMIT 49000";
/*
* executa e trata a consulta
*/
$resultado = mysql_query($sql)
or die ("Não foi possível realizar a consulta");
if (@mysql_num_rows($resultado) == 0)
die('Nenhum registro encontrado');
/*
* fazendo um loop para mostrar os resultados
*/
while ($linha = mysql_fetch_array($resultado, MYSQL_ASSOC))
{
$linhaPage = $linha['page'];
while(strstr($linhaPage, "--"))
{
$linhaPage = str_replace("--", "-", $linhaPage);
}
?>
<url>
<loc>http://<? echo $_SERVER['HTTP_HOST']; ?>/download/mp3/<?php echo eregi_replace('([^0-9a-zA-Z\-])','',strtr($linhaPage, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ", "aaaaeeiooouucAAAAEEIOOOUUC")); ?></loc>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<?php
}
echo '</urlset>';
?>tenta tirar o LIMIT 49000, ta ocorrendo um conflito, pois você está selecionando um id a partir de 51000 e ao mesmo tempo limitando em 49000.
tente assim:
select * from tabela limit inicio, numero_maximo_de_registros
vai retorna 100 linhas apartir do 5100
SELECT * FROM sitemap LIMIT 51000, 100 order by id
coloca a condição " where id > 51000".