Martinsrj 0 Denunciar post Postado Junho 13, 2009 Ola pessoal! Estou aqui com duvidas com o seguinte erro: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\ec\Cap5Lab24.php on line 20 dados Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\ec\Cap5Lab24.php on line 26 OBS.: a linha 20 e esta: $num_linhas = mysql_num_rows($res); a linha 26 e esta: while ($dados = mysql_fetch_assoc($res)) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Acessando dados de um banco de dados Mysql</title> </head> <body> <font face="Arial, Helvetica, sans-serif" size="2" color="red"><b>Ola pessoal! Estes são alguns dados do primeiro livro da Tabela Livros da Editora </b></font><br/><br /> <? require_once 'conexao.php'; $query = "SELECT categorias.categoria, livros.codlivro, livros.titulo, livros.autor, livros.preço"; $query .= "FROM categorias "; $query .= "INNER JOIN livros "; $query .= "ON categorias.codCategoria = livros.codCategoria "; $res = mysql_query($query); $num_linhas = mysql_num_rows($res); echo $num_linhas . " dados <br><br>"; echo "<table width='100%' border='0'>"; echo "<tr>"; echo "<td bgcolor='maroon'><font color='white' size'1' face='arial'>Codigo</td>"; echo "<td bgcolor='maroon'><font color='white' size'1' face='arial'>Titulo</td>"; echo "<td bgcolor='maroon'><font color='white' size'1' face='arial'>Nome do Autor</td>"; echo "<td bgcolor='maroon'><font color='white' size'1' face='arial'>preço</td>"; echo "</tr>"; while ($dados = mysql_fetch_assoc($res)) { echo "<tr>"; echo "<td bgcolor='gold'<font color='black' size='2' face='arial'>" . $dados["CodLivro"] . "</td>"; echo "<td bgcolor='gold'<font color='black' size='2' face='arial'>" . $dados["Titulo"] ."</td>"; echo "<td bgcolor='gold'<font color='black' size='2' face='arial'>" . $dados["Autor"] . "</td>"; echo "<td bgcolor='gold'<font color='black' size='2' face='arial'>" . $dados["Categoria"] . "</td>"; echo "<td bgcolor='gold'<font color='black' size='2' face='arial'>R$ " . number_format($dados["preço"],2,",",".") . "</td>"; echo "</tr>"; } echo "</table>"; mysql_close($con); ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Troca esta linha $res = mysql_query($query); Por esta $res = mysql_query($query) or die(mysql_error()); Este erro acontece porque houve um erro com a query executada. O comando acima vai exibir o erro do mysql que consta ali. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Junho 13, 2009 Bom dia Carlos! Realizei o seu procedimento e apareceu o seguinte: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN livros ON categorias.codCategoria = livros.codCategoria' at line 1 Troca esta linha $res = mysql_query($query); Por esta $res = mysql_query($query) or die(mysql_error()); Este erro acontece porque houve um erro com a query executada. O comando acima vai exibir o erro do mysql que consta ali. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Então vamos lá... O que eu vejo que pode ser. $query = "SELECT categorias.categoria, livros.codlivro, livros.titulo, livros.autor, livros.preço"; // o nome do campo está com Ç mesmo?? $query .= "FROM categorias ";// Coloca um espaço antes do from ou depois do preço na linha de cima. $query .= "INNER JOIN livros "; $query .= "ON categorias.codCategoria = livros.codCategoria ";// os nomes dos campos estão corretos? Outra coisa que você pode fazer é imprimir na tela o Sql antes de executar a query pra ver como ela ficou, somente para debug... Ex.: echo $query; $res = mysql_query($query) or die(mysql_error()); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Junho 13, 2009 Quero fazer um INNER Join com as tabelas abaixo: livros CREATE TABLE `livros` ( `CodLivro` INT(11) NOT NULL AUTO_INCREMENT, `ISBN` VARCHAR(10) DEFAULT NULL, `CodCategoria` INT(11) NOT NULL DEFAULT '0', `Titulo` VARCHAR(70) DEFAULT NULL, `Autor` VARCHAR(50) DEFAULT NULL, `NPaginas` INT(11) DEFAULT '0', `Formato` VARCHAR(15) DEFAULT NULL, `Preco` DECIMAL(19,4) DEFAULT '0.0000', `resenha` TEXT, `Capa` VARCHAR(50) DEFAULT NULL, `DtLanc` DATETIME DEFAULT NULL, `Desconto` DECIMAL(19,4) DEFAULT '0.0000', PRIMARY KEY (`CodLivro`), UNIQUE KEY `ISBN` (`ISBN`), KEY `CodCategoria` (`CodCategoria`), KEY `CodLivro` (`CodLivro`), KEY `CodCategoria_2` (`CodCategoria`) ) ENGINE=MYISAM AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 categorias CREATE TABLE `categorias` ( `CodCategoria` INT(11) NOT NULL AUTO_INCREMENT, `Categoria` VARCHAR(25) NOT NULL, PRIMARY KEY (`CodCategoria`) ) ENGINE=MYISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 13, 2009 Dá uma olhada nos comentários que eu coloquei no meu POST anterior. Tem 2 coisas erradas. Um espaço faltando e um nome de coluna errado (com Ç). Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Martinsrj 0 Denunciar post Postado Junho 13, 2009 Valeu Carlos pela ajuda! Tive que realizar o seguinte procedimento: $query = "SELECT categorias.Categoria, livros.CodLivro, livros.Titulo, livros.Autor, livros.Preco "; $query .= "FROM categorias "; $query .= "INNER JOIN livros "; $query .= "ON categorias.CodCategoria = livros.CodCategoria "; $res = mysql_query($query) or die(mysql_error()); Dá uma olhada nos comentários que eu coloquei no meu POST anterior. Tem 2 coisas erradas. Um espaço faltando e um nome de coluna errado (com Ç). Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites