Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal!
Estou quebrando a cabeça com uma consulta, já tendo procurado solução em manuais e aqui no fórum, sem resultado.
Na consulta abaixo o resultado considera sempre um registro a menos.
A contagem do mysql_num_rows dá o resultado correto, por exemplo = data 19/04/2010 contem
2 registros e o resultado apresenta registros = 2.
Porém no formulário gerado com o while ele desconsidera o primeiro registro e no exemplo
acima apresenta só 1 resultado.
Testei datas com mais resultados, por exemplo 22/04/2010 tem 5 registros e ele desconsidera
o primeiro e só apresenta 4. É sempre o registro mais antigo que não aparece.
Agradeço se puderem me ajudar.
<?php
include "validar_session.php";
include "configura/config_sistema.php";
include "configura/conexao.php";
$base = mysql_query("select * from cadastro WHERE login='$login_usuario'");
$consulta = mysql_query("select historico.*, cadastro.* from historico
LEFT JOIN cadastro ON cadastro.id = historico.id_cadastro
WHERE data_historico='$data3' ORDER BY data_historico");
$row_rs_forn = mysql_fetch_assoc($consulta);
$num_registros = mysql_num_rows($consulta);
$total_usuarios = $num_registros;
echo $total_registros;
while($linhas = mysql_fetch_object($consulta)) {
echo $linhas->razaosocial;
echo $linhas->historico;
?>ESerra, funcionou retirando a linha que sugeriu.
MUITO OBRIGADA!
Um abraço.
Muito boa a resposta... precisei para resolver um problema com minha consulta. Parabéns.
eu tenho o mesmo problema mas com o seguinte código, e não consigo resolver..
<?php
require("config.php");
$xml = new SimpleXMLElement('<photos/>');
$draw = $xml->addChild('config enable_auto_play="true" auto_play_duration="2.5" auto_align="true"
folder="images/"
tween_duration="0.5"
photo_border_size="4"
photo_border_color="0xFFFFFF"
photo_alpha="true"
x_spacing="120"
y_spacing="0"
side_photo_count="3"');
$result = mysql_query("select * from photos");
while($row = mysql_fetch_object($result)) {
$draw = $xml->addChild('photo');
$draw->addChild('filename',$row['location']);
$draw->addChild('title',$row['caption']);
$draw->addChild('description',$row['descricao']);
}
$fp = fopen("galeria_jnovas.xml","wb");
fwrite($fp,$xml->asXML());
fclose($fp);
?>
Logo após a consulta você está inserindo isso:
$row_rs_forn = mysql_fetch_assoc($consulta);
Logo, o PHP lê o primeiro resultado e move o ponteiro para o segundo, por isso no laço está vindo um resultado a menos, já que o primeiro já foi lido.
Ai tem duas alternativas:
1 - Remova o que eu citei acima;
2 - Use mysql_data_seek, para voltar o ponteiro para o primeiro resultado.