Guw 0 Denunciar post Postado Dezembro 30, 2008 Eu tava tendo um problema com um código meu e descobri que era a função mysql_num_rows(). O problema era que ela retornava o valor zero, mas após a função eu colocava o or die(mysql_error()). Mas só dava erro quando o valor que a função mysql_num_rows() era 0. Eu resolvi o problema retirando o or die(mysql_error()) do código, e está funcionando direitinho, pelo menos por enquanto. A minha dúvida é: tem algum problema o or die(mysql_error()) não aparecer após a função mysql_num_rows() ou eu deveria colocar e procurar outra solução para meu código? Agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Dezembro 30, 2008 Amigo, Coloque o 'or die' ao lado da mysql_query. Assim: mysql_query("QUERY") or die(mysql_error()); Eu só faço assim! Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Guw 0 Denunciar post Postado Dezembro 30, 2008 Eu faço isso. Tava assim ó: $query=mysql_query("query") or die(mysql_error()); $row=mysql_num_rows($query) or die(mysql_error()); //aqui o problema A variável $row, se retorna valor 0, o "or die()" entra é executado, mas se eu tiro ele, o script roda normalmente, como eu queria. O que eu queria saber é se tem problema isso. Compartilhar este post Link para o post Compartilhar em outros sites
Red FeniX 4 Denunciar post Postado Dezembro 30, 2008 Como falei, geralmente uso o 'or die' só na mysql_query. Não vejo necessidade de usar no 'num_rows', pq ele só vai ser executado se a query rodar direito, então não vejo necessidade. E, se não estou enganado, não há problemas em retirar ele. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
samirbh 0 Denunciar post Postado Dezembro 30, 2008 vale lembrar que o or é o mesmo que "ou". se observarmos direito é uma pagadinha de logica. $row vai fazer alguma coisa de qualquer jeito porque ela é verdadeiro ou verdadeiro. como o "mysql_num_rows($query)" vem primeiro ele tem precedencia ignorando o proximo valor sendo assim se o primeiro valor for false ele vai para o segundo e apresentara a menssagem de erro do mysql. faça o teste usando o var_dump(variavel) se quiser saber que que a variavel esta caregando. lembre-se quando tiver o operador or que é o mesmo que "ou" vou ter precedencia no primeiro valor. procure por precedencia dos operadores no php que vai lhe ajudar muito ñ ha problema se o or die(mysql_error()) não aparecer depois de funçoes do banco, você vai perder em quetão de aviso etc... você pode resolver da seguinte maneira: if($row == false){//ou if(empty(row)) depende do que você presisa header(location: pagina.php) } else{ continuação do seu sistema... } informaçoes tiradas de php.net/manual espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Dezembro 30, 2008 Amigo é aconselhavel sempre depois de fazer consultas em sua case de dados. verifique se teve retorno TRUE. if($row){ } Assim ele já continua se tiver conteúdo na variável $row Caso não tenha sucesso na execução da query. ele já dá uma viso. é um metodo de que seu site nunca deixe de informar os desinformados que algo deu errado... Compartilhar este post Link para o post Compartilhar em outros sites
Guw 0 Denunciar post Postado Dezembro 30, 2008 Obrigado a todos, pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Dezembro 31, 2008 Só lembrando tbm que die é a mesma coisa que exit. Compartilhar este post Link para o post Compartilhar em outros sites