Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Numero de linhas variável!


Rhaone

Pergunta

Numero de linhas variável!

Leitura sequencial causa variação no número de linhas.

Olá pessoal!

Tenho uma tabela com 35901 elementos. Estou acessando-a sequencialmente, ordenada pela coluna "Arquivo" e inserindo numa outra tabela, um resumo (uma estatística).

Acontece que mesmo sem alterar o script, hora consigo ler somente 2868 linhas, hora 2979, por exemplo.

Outro fator importante: nunca passa pelo final do script onde sinalizo o total lido.

...
  $tb_link = "SELECT * FROM `$database`.`$tb_down` ORDER BY `$tb_down`.`Arquivo` ASC";
  $dados = mysql_query ($tb_link);

  while ($linha = mysql_fetch_array ($dados)) {
...
  }
...
Eis a estrutura da tabela:
CREATE TABLE `tbdownloads` (
  `Seq` int(8) NOT NULL auto_increment,
  `Data` date default NULL,
  `Hora` char(8) default NULL,
  `IP` char(30) default NULL,
  `Tamanho` decimal(10,2) default NULL,
  `Unidade` char(4) default NULL,
  `Veloc` decimal(6,0) default NULL,
  `Caminho` char(255) default NULL,
  `Arquivo` char(255) default NULL,
  `Extensao` char(7) default NULL,
  `Obs` char(20) default NULL,
  `Qua` int(7) default NULL,
  PRIMARY KEY  (`Seq`)
) ENGINE=InnoDB AUTO_INCREMENT=35902 DEFAULT CHARSET=latin1;

Alguém tem uma noção de por que isso acontece?

Grato.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Oi,'Rhaone'

Pelo que você relatou este não é um problema do mysql. É um problema de programação. Por favor passe o script para que o pessoal de PHP possa orientá-lo.

Movendo para PHP

Link para o comentário
Compartilhar em outros sites

  • 0

Uma coisa interessante é a seguinte também:

Eu fiz dois scripts, um para criar uma tabela temporária para a coluna "Arquivo" e outro script idêntico, só que para a coluna "Caminho" e ambos possuem o mesmo tamanho e tipo. No segundo funciona!

Já comparei linha a linha ambos e não tem mais nada diferente um do outro.

<?php
// ----------------------------------------------------------------
  $database    = 'dbrhaone';
  $tb_down     = 'tbdownloads';
  $tb_down_arq = 'tbdown_arq';

  $db_link = mysql_connect ($host, $apel_master, $sen_master);
  if (!$db_link) {
      echo "<script>alert ('#01=Não foi possível conectar-se ao banco de dados!');</script>";
  }

  mysql_select_db ($database) or die ('#07=Não foi possível conectar-se ao banco de dados: ' . mysql_error ());

// ----------------------------------------------------------------
  $tb_link = "DROP TABLE IF EXISTS `$database`.`$tb_down_arq`";
  $dados = mysql_query ($tb_link);

  $tb_link = "
    CREATE TABLE `$database`.`$tb_down_arq` (
      `Seq` int(8) NOT NULL auto_increment,
      `Data` date default NULL,
      `Hora` char(8) default NULL,
      `IP` char(30) default NULL,
      `Tamanho` decimal(10,2) default NULL,
      `Unidade` char(4) default NULL,
      `Veloc` decimal(6,0) default NULL,
      `Caminho` char(255) default NULL,
      `Arquivo` char(255) default NULL,
      `Extensao` char(7) default NULL,
      `Obs` char(20) default NULL,
      `Qua` int(7) default NULL,
      PRIMARY KEY  (`Seq`)
   ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=35902;
   ";
  $dados = mysql_query ($tb_link);

// ----------------------------------------------------------------
  $arquivo = "";
  $arqqua  = 0;

  $tb_link = "SELECT * FROM `$database`.`$tb_down` ORDER BY `$tb_down`.`Arquivo` ASC";
  $dados = mysql_query ($tb_link);

  while ($linha = mysql_fetch_array ($dados)) {

    If ($arquivo == "") {
      $seq     = $linha ["Seq"];
      $data    = $linha ["Data"];
      $hora    = $linha ["Hora"];
      $ip      = $linha ["IP"];
      $tamanho = $linha ["Tamanho"];
      $unidade = $linha ["Unidade"];
      $caminho = $linha ["Caminho"];
      $arquivo = $linha ["Arquivo"];
    }                      

    If ($linha ["Arquivo"] == $arquivo) {
      $arqqua ++;
    } else {
      $query_text = "INSERT INTO `" . $database . "`.`"  . $tb_down_arq . "` (
         `Seq`        ,
         `Data`       ,
         `Hora`       ,
         `IP`         ,
         `Tamanho`    ,
         `Unidade`    ,
         `Caminho`    ,
         `Arquivo`    ,
         `Qua`    
        ) VALUES (       '" . 
          $seq     . "', '" . 
          $data    . "', '" . 
          $hora    . "', '" . 
          $ip      . "', '" . 
          $tamanho . "', '" . 
          $unidade . "', '" . 
          $caminho . "', '" . 
          $arquivo . "', '" .
          $arqqua  . "')";

      $tb_ok = mysql_query ($query_text);

      $seq     = $linha ["Seq"];
      $data    = $linha ["Data"];
      $hora    = $linha ["Hora"];
      $ip      = $linha ["IP"];
      $tamanho = $linha ["Tamanho"];
      $unidade = $linha ["Unidade"];
      $caminho = $linha ["Caminho"];
      $arquivo = $linha ["Arquivo"];

      $arqqua = 1;
    }
  }

  If ($arqqua > 0) {
    $query_text = "INSERT INTO `" . $database . "`.`"  . $tb_down_arq . "` (
       `Seq`        ,
       `Data`       ,
       `Hora`       ,
       `IP`         ,
       `Tamanho`    ,
       `Unidade`    ,
       `Caminho`    ,
       `Arquivo`    ,
       `Qua`    
      ) VALUES (       '" . 
        $seq     . "', '" . 
        $data    . "', '" . 
        $hora    . "', '" . 
        $ip      . "', '" . 
        $tamanho . "', '" . 
        $unidade . "', '" . 
        $caminho . "', '" . 
        $arquivo . "', '" .
        $arqqua  . "')";

    $tb_ok = mysql_query ($query_text);
  }
?>

Vou fazer!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...