JFernandesVR Posted June 11, 2013 at 09:04 AM Report #511947 Posted June 11, 2013 at 09:04 AM (edited) Boas pessoal. tenho o seguinte problema. Criei os seguintes ficheiros de ligação a bd config.inc.php $NOME_BD = "******"; $NOME_UTILIZADOR = "*****"; $PASSWORD = "*******"; $NOME_SERVIDOR = "localhost"; e o BDMySQL.class.php class BDMySQL { var $conn; function ligarBD($bdname, $user, $password, $server) { $this->conn = mysql_connect($server, $user, $password); if($this->conn<0) { return -1; } if(mysql_select_db($bdname, $this->conn)==false) { return -1; } } function executarSQL($sql_command) { $resultado = mysql_query($sql_command, $this->conn); return $resultado; } function numero_tuplos($tabela) { $tuplos=0; $rs=$this->executarSQL("SELECT * FROM $tabela"); while(mysql_fetch_row($rs)) { $tuplos++; } return $tuplos; } function fecharBD() { mysql_close($this->conn); } } o problema esta que, quando crio uma página nova em php e faço o requiere e includes destes 2 ficheiros acima, nao me consigo ligar a base de dados. nem fazendo um mysql_connect tenho tb o class.php onde estao listadas todas as funçoes, mas nao queria tar a inserir mais funçoes require("config.inc.php"); include("BDMySQL.class.php"); class Classe extends BDMySQL { var $bd; function Classe() { global $NOME_BD, $NOME_UTILIZADOR, $PASSWORD, $NOME_SERVIDOR; $this->bd = new BDMySQL(); $this->bd->ligarBD($NOME_BD, $NOME_UTILIZADOR, $PASSWORD, $NOME_SERVIDOR); } por vez, quando faço o require do ficheiro bdmysql.class.php, diz que tem um erro na linha 3 do ficheiro bdmysql.class.php Edited June 11, 2013 at 09:20 AM by JFernandesVR
HappyHippyHippo Posted June 11, 2013 at 09:31 AM Report #511953 Posted June 11, 2013 at 09:31 AM 1º - quais as mensagens de erro que te aparecem 2º - qual é a linha 3 ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JFernandesVR Posted June 11, 2013 at 09:34 AM Author Report #511955 Posted June 11, 2013 at 09:34 AM linha 3 do bdmysql.class.php é class BDMySQL { Warning: mysql_query() [function.mysql-query]: Access denied for user '*******'@'localhost' (using password: NO) in/home/*******/public_html/pesquisavancada.php on line 437 linha 437 $resultado = mysql_query($sql);
HappyHippyHippo Posted June 11, 2013 at 09:54 AM Report #511963 Posted June 11, 2013 at 09:54 AM 1º - o erro está antes dessa linha 3 2º - o erro que fizeste post é devido a incorrecta informação de autenticação no servidor MySQL, verifica qual é a informação corecta porque (quase de certeza) não será "******" IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JFernandesVR Posted June 11, 2013 at 09:57 AM Author Report #511965 Posted June 11, 2013 at 09:57 AM (edited) eu pus ***** para nao postar aqui os dados... o nome do servido de bd, pass e utilizador estao correctos quando faço o reuire do bdmysql.class.php dame erro na linha 3 quando tento fazer mysql_connect também me dá erro e nao percebo o porque Edited June 11, 2013 at 09:58 AM by JFernandesVR
HappyHippyHippo Posted June 11, 2013 at 10:03 AM Report #511967 Posted June 11, 2013 at 10:03 AM eu pus ***** para nao postar aqui os dados... o nome do servido de bd, pass e utilizador estao correctos até podias por batatas ... quem está a dizer que está errado é o servidor, não sou eu quando faço o reuire do bdmysql.class.php dame erro na linha 3 quando tento fazer mysql_connect também me dá erro e nao percebo o porque eu já disse : o erro está nas linhas anteriores, mais será impossível dizer sem apresentares o erro que te é apresentado IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JFernandesVR Posted June 11, 2013 at 10:11 AM Author Report #511971 Posted June 11, 2013 at 10:11 AM mas os dados estão corretos. Fatal error: Cannot redeclare class BDMySQL in /home/*****/public_html/Classes PHP/BDMySQL.class.php on line 3 Warning: mysql_query() [function.mysql-query]: Access denied for user '****'@'localhost' (using password: NO) in/home/*****/public_html/pesquisavancada.php on line 444 $resultado = mysql_query($sql); Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/*****/public_html/pesquisavancada.php on line 444 $resultado = mysql_query($sql); Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in/home/*****/public_html/pesquisavancada.php on line 445 while ($artigos = mysql_num_rows($resultado)) Warning: mysql_close(): 4 is not a valid MySQL-Link resource in/home/******/public_html/Classes PHP/BDMySQL.class.php on line 32 mysql_close($this->conn);
HappyHippyHippo Posted June 11, 2013 at 10:18 AM Report #511972 Posted June 11, 2013 at 10:18 AM o primeiro erro é devido a múltiplas inclusões do ficheiro. ou corrigis isso para só ser incluído uma única vez ou usa o (require|include)_once no que toca a todos os outros, a isso eu já te disse : a informação de autenticação ao servidor MySQL está errada. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JFernandesVR Posted June 11, 2013 at 10:20 AM Author Report #511973 Posted June 11, 2013 at 10:20 AM (edited) como é que pode estar errada, se nas outras páginas funca? mesmo ponde once_ da me erro que nao consegue conetar. e ja verifiquei os dados, e eles estao corretos Edited June 11, 2013 at 10:23 AM by JFernandesVR
yoda Posted June 11, 2013 at 10:25 AM Report #511974 Posted June 11, 2013 at 10:25 AM Aprensenta SEMPRE os erros, SEMPRE. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
HappyHippyHippo Posted June 11, 2013 at 10:27 AM Report #511975 Posted June 11, 2013 at 10:27 AM como é que pode estar errada, se nas outras páginas funca? mesmo ponde once_ da me erro que nao consegue conetar. e ja verifiquei os dados, e eles estao corretos nisso ninguém te pode ajudar ... a informação é a que tu apresentaste aqui (a mensagem de erro) e é isso que ela diz. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JFernandesVR Posted June 11, 2013 at 10:32 AM Author Report #511976 Posted June 11, 2013 at 10:32 AM como posso então fazer a ligação a base de dados? pondo os pontos nos is tenho um ficheiros class.php onde estão as funções certo? para não ter tanto trabalho a fazer a funções, prefiro programar directamente na página que estou a criar. tenho o config.inc.php que tem os dados de acesso. tenho o bdmysql.class.php, que faz a ligação a base de dados. estou a tentar criar uma pesquisa aqui vai o codigo: <?php session_start(); $SID = SID; include("Classes PHP/Class.php"); include_once("Classes PHP/BDMySQL.class.php"); require_once("Classes PHP/config.inc.php"); ?> <form action="" enctype="multipart/form-data" name="busca" method="post"> <input type="text" name="buscar" /> <input type="submit" name="enviar" value="Procurar" /> </form> <?php $buscar_artigo = $_POST['buscar']; $sql= "SELECT * FROM artigos WHERE DescricaoPT '%$buscar_artigo%'"; $resultado = mysql_query($sql); while ($artigos = mysql_num_rows($resultado)) { $imagem_artigo = $resultado_artigos['Imagem']; $referencia_artigo= $resultado_artigos['Referencia']; $descricao_artigo= $resultado_artigos['DescricaoPT']; $preco_artigo= $resultado_artigos['PrecoPVP']; $marca_artigo= $resultado_artigos['Marca']; ?> <table width=100% border=1> <tr> <td>Imagem</td> <td>Referência</td> <td>Descrição</td> <td>Preço</td> <td>Marca</td> </tr> <tr> <td><?php echo $imagem_artigo ?></td> <td><?php echo $referencia_artigo ?></td> <td><?php echo $descricao_artigo ?></td> <td><?php echo $preco_artigo ?></td> <td><?php echo $marca_artigo ?></td> </tr> <tr> <td colspan=4 align=right>Total de artigos encontrados</td> <td><?php $total_registo?></td> </tr> </table> <?php } ?>
yoda Posted June 11, 2013 at 10:39 AM Report #511977 Posted June 11, 2013 at 10:39 AM para não ter tanto trabalho a fazer a funções, prefiro programar directamente na página que estou a criar. Mais tarde essa prática vai-te dar bastantes problemas. Pega num ficheiro à parte, inclui a classe de acesso à base de dados e tenta ligar-te a ela, e diz o que acontece. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
JFernandesVR Posted June 11, 2013 at 10:59 AM Author Report #511983 Posted June 11, 2013 at 10:59 AM fica no mesmo bdmysql.class.php <?php class BDMySQL { var $conn; function ligarBD($bdname, $user, $password, $server) { $this->conn = mysql_connect($server, $user, $password); if($this->conn<0) { return -1; } if(mysql_select_db($bdname, $this->conn)==false) { return -1; } } function executarSQL($sql_command) { $resultado = mysql_query($sql_command, $this->conn); return $resultado; } function numero_tuplos($tabela) { $tuplos=0; $rs=$this->executarSQL("SELECT * FROM $tabela"); while(mysql_fetch_row($rs)) { $tuplos++; } return $tuplos; } function fecharBD() { mysql_close($this->conn); } } ?> class.php <?php require("config.inc.php"); include("BDMySQL.class.php"); class Classe extends BDMySQL { var $bd; function Classe() { global $NOME_BD, $NOME_UTILIZADOR, $PASSWORD, $NOME_SERVIDOR; $this->bd = new BDMySQL(); $this->bd->ligarBD($NOME_BD, $NOME_UTILIZADOR, $PASSWORD, $NOME_SERVIDOR); } ?> pesquisaavancada.php <?php session_start(); $SID = SID; include("Classes PHP/Class.php"); include_once("Classes PHP/BDMySQL.class.php"); require_once("Classes PHP/config.inc.php"); $ligarbd=new Classe; $ligarbd->ligarBD($NOME_BD, $NOME_UTILIZADOR, $PASSWORD, $NOME_SERVIDOR); $ligarbd->endClasse(); ?>
yoda Posted June 11, 2013 at 11:28 AM Report #511991 Posted June 11, 2013 at 11:28 AM (edited) Eu tinha dito ficheiro à parte, porque era mesmo para ser um ficheiro à parte, e não nos que tinhas, para realmente entenderes o erro. global $NOME_BD, $NOME_UTILIZADOR, $PASSWORD, $NOME_SERVIDOR; Isto é o quê? Estas variáveis são definidas onde? E porque é que estás a fazer a ligação à BD com parâmetros na função se dentro da própria função não as usas? E aqueles includes todos dentro de cada ficheiro? E aquelas nomenclaturas esquisitas nas classes que, pelos vistos, já estão a fazer estragos? Organiza bem o código, entende o que está a acontecer. Se não vês o erro no todo, parte o sistema em partes individuais e testa até encontrares o problema. Edited June 11, 2013 at 11:34 AM by yoda before you post, what have you tried? - http://filipematias.info sense, purpose, direction
JFernandesVR Posted June 11, 2013 at 11:33 AM Author Report #511992 Posted June 11, 2013 at 11:33 AM (edited) nao percebi? ficheiro a parte? como posso ligar sem usar esses ficheiros?? ja tentei o mysql_connect e nao funca Edited June 11, 2013 at 11:33 AM by JFernandesVR
yoda Posted June 11, 2013 at 11:35 AM Report #511993 Posted June 11, 2013 at 11:35 AM Vê novamente o post que deixei. O teu código está cheio de incongruências, é por isso que não funciona. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
JFernandesVR Posted June 11, 2013 at 11:38 AM Author Report #511996 Posted June 11, 2013 at 11:38 AM (edited) eu fiz isso, seguindo o livro de php 5.3 essas variavies estao definidas no config.inc.php eu basicamente estou a tentar nao criar mais funçoes no class.php. queria inserir o php directamente na pagina e o que me acontece é que ele nao liga a bd. Edited June 11, 2013 at 11:40 AM by JFernandesVR
yoda Posted June 11, 2013 at 11:52 AM Report #511999 Posted June 11, 2013 at 11:52 AM Que livro era esse? É da editora FCA? Se for, lixo com ele, quem os escreve sabe tanto quanto um utilizador ávido do google, digo isto por experiência (tive um que acabou na lareira). Se a nomenclatura das classes e funções foi copiada desse livro, não o mantes para o lixo, mete na net para a malta se rir um pouco 🙂 Sinceramente, tens tantos erros em tão pouco código que não consigo ajudar sem mudar-te quase tudo, mas isso és tu quem tem de fazer ... olha bem para o código, e identifica os erros que conseguires. Se mais tarde me der para isso, deixo aqui uma sugestão para mudar tanto o código como a forma como pensas nele. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
JFernandesVR Posted June 11, 2013 at 11:55 AM Author Report #512000 Posted June 11, 2013 at 11:55 AM sim, esse mesmo. nao foi copiada mas foi baseado no livro.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now