← Desenvolvimento

Problema no MYSQL - URGENTE

Lida 3038 vezes

Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Boas.

Tou com um pequeno problema que ha uma semana me anda a dar problemas!

Citar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/hugogarc/public_html/mendes/includes/basedados.php on line 15

Citar
<?
   class basedados{

   var $mysql_db;
   var $deu_erro;

   function basedados($base_dados="hugogarc_mendeemonteiro", $host="localhost", $login="hugogarc_xxxxx", $password="xxxx"){
      mysql_connect($host, $login, $password);
      mysql_select_db($base_dados);
   }

   function ocurr($campo = "count(*)", $tabela = "utilizadores", $condicao = "1"){
      $conta = "SELECT $campo FROM $tabela WHERE $condicao";
      $resultado = mysql_query($conta);
      while ($num = mysql_fetch_array($resultado, MYSQL_ASSOC))
          foreach ($num as $res) ;
          return $res;
   }

   function ocurrsql($conta){
      mysql_query($conta);
   }
   
   function ocurrsqlres($conta){
      $resultado = mysql_query($conta);
      while ($num = mysql_fetch_array($resultado, MYSQL_ASSOC))
             foreach ($num as $res) ;
          return $res;
   }

   function ocurr_array($campo = "count(*)", $tabela = "utilizadores", $condicao = "1"){
      $t=mysql_query("select $campo from $tabela where $condicao");
      $tam = mysql_affected_rows();
      for($i = 0; $i < $tam ;++$i){
      $res = mysql_fetch_row($t);
      $result[$i]=$res[0];
      }
      return $result;
   }

   function ocurr_linha($campos="", $tabela="", $condicao="0"){
      $str=implode(" , " , $campos);
      $res=mysql_query("select $str from $tabela where $condicao");
      $result=mysql_fetch_row($res);
      return $result;
   }


   function delete($tabela,$condicao=0){
      $ok=1;
      mysql_query("delete from $tabela where $condicao") or $ok=o;
      return $ok;
   }


   function insert($tabela,$campos,$valores){
      $campos_str=implode(" , " , $campos);
      $valores_str=implode(" , " , $valores);
      mysql_query("insert into $tabela ($campos_str) values ($valores_str)");
      return 1;
   }


   function update_fields($update, $tabela, $condicao){
      mysql_query("update $tabela set $update where $condicao");
      return 1;
   }


   function update_field($campo, $tabela, $condicao, $update){
      mysql_query("update $tabela set $campo = $update where $condicao");
      return 1;
   }
}
?>

Isto estava num Host Windows em plesk e eu tou a transferir para um em CPanel e não sei se pode ter algo a ver.

Preciso de ajuda. Obrigado

[[]]
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

1º Esse código está muito mau.

function ocurr($campo "count(*)"$tabela "utilizadores"$condicao "1"){
      
$conta "SELECT $campo FROM $tabela WHERE $condicao";
      
$resultado mysql_query($conta);
      [
b]while ($num mysql_fetch_array($resultadoMYSQL_ASSOC))[/b]
          foreach (
$num as $res) ;
          return 
$res;
   }

Se bem percebi, o erro é naquela linha, depois, por cada um fazes "foreach ($num as $res) ;" Para quê? não há acção? E no fim fazes "return $res" ?!?!?!? Mas o que deve ele fazer???
faz um "echo $conta;" e mostra aqui e depois vê se há resultados no mysql atraves da mesma query directamente no mysql.
Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

1º Esse código está muito mau.

function ocurr($campo "count(*)"$tabela "utilizadores"$condicao "1"){
      
$conta "SELECT $campo FROM $tabela WHERE $condicao";
      
$resultado mysql_query($conta);
      [
b]while ($num mysql_fetch_array($resultadoMYSQL_ASSOC))[/b]
          foreach (
$num as $res) ;
          return 
$res;
   }

Se bem percebi, o erro é naquela linha, depois, por cada um fazes "foreach ($num as $res) ;" Para quê? não há acção? E no fim fazes "return $res" ?!?!?!? Mas o que deve ele fazer???
faz um "echo $conta;" e mostra aqui e depois vê se há resultados no mysql atraves da mesma query directamente no mysql.

Foi feito por uma empresa onde paguei um dinheirão ha um ano. Como mudei o alojamento deles ainda me queriam cobrar mais guito para fazer isso.

Obrigado pela ajuda!
Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Ao mudar o que disses-te da outro erro na mesma linha.

Citar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/hugogarc/public_html/mendes/includes/basedados.php on line 15
SELECT idficheiro FROM introducao WHERE id='1'
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/hugogarc/public_html/mendes/includes/basedados.php on line 15
SELECT url FROM ficheirospdf WHERE idficheirospdf='0'
Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

É que o problema ta no backofice. O site vai buscar a informação a base de dados mas no backofice quando escolho uma opção qualquer para mudar as informações da esse erro.

PS: Soz for double post.
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

estas a comparar strings com inteiros? é que '1' é uma string e 1 é inteiro, se não te der resultados, ele pode-te dar warning, depende das configs, se quiseres adiciona-me no msn.
Não sei que empresa te fez isso, mas até um freelancer fazia muito melhor mesmo.
Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Boas novamente.

Bem anjo tu precebes mais disto que eu e tenho esta pergunta para ti. Como faço o include da base de dados?


Citar
include_once ($_SERVER["DOCUMENT_ROOT"].'/includes/basedados.php');
$base_dados=new basedados('mendesem_mendesmonteiro');

Citar
include_once ('/home/mendesem/public_html/include/basedados.php');
$base_dados=new basedados('mendesem_mendesmonteiro');

Ao usar o metedo 1 da este erro.
Citar
Warning: include(/usr/local/apache/htdocs/includes/basedados.php) [function.include]: failed to open stream: No such file or directory in /home/mendesem/public_html/admin/empresa.php on line 2

Ao usar o metodo 2 da este erro.
Citar
Warning: include(/usr/local/apache/htdocs/includes/basedados.php) [function.include]: failed to open stream: No such file or directory in /home/mendesem/public_html/admin/empresa.php on line 2

Eu penso que o problema esta em chamar a base de dados so que não sei como o resolver. Alguem sabe?

[[]]
Offline

Diogo Pinto 
Administrador
Mensagens 4400 Gostos 371
Feedback +4

Troféus totais: 37
Trófeus: (Ver todos)
Avatar Search Level 6 Linux User Mobile User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Experimenta:

Código: [Seleccione]
include_once ('/includes/basedados.php');
$base_dados=new basedados('mendesem_mendesmonteiro');
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Dá-te o mesmo erro? A segunda devia funcionar, mas secalhar o melhor era usares um ROOTDIR, assim, em qualquer include que usasses seria muito mais fácil.
Tendo acesso ou tendo os vários ficheiros seria muito mais fácil te ajudar.

DiguiVirus, ele está na pasta admin e o ficheiro da base de dados está em ../includes/basedados.php
Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Boas. Mudei e pus a base de dados na pasta admin/includes/basedados.php

Citar
Warning: include_once(/usr/local/apache/htdocs/includes/basedados.php) [function.include-once]: failed to open stream: No such file or directory in /home/mendesem/public_html/admin/empresa.php on line 2

Warning: include_once() [function.include]: Failed opening '/usr/local/apache/htdocs/includes/basedados.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/mendesem/public_html/admin/empresa.php on line 2

Fatal error: Class 'basedados' not found in /home/mendesem/public_html/admin/empresa.php on line 3

Não sera um problema de host? Como disse no incio isto estava em plesk ( windows ) e agora tou a por em Cpanel.

Isto ta bem? $base_dados=new basedados('mendesem_mendesmonteiro'); é que acho que esta aqui algo que não joga.
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

fala comigo no msn ou disponibiliza o ficheiro que te arranjo isso
Offline

BlackouT 
Membro
Mensagens 237 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Obrigado a todos pela ajuda mas vou fazer de outra maneira.

Um obrigado especial ao anjo2.

[[]]