bd_conectar(); } function bd_conectar() { if($this->conectado===false) { include "bd_conex.php"; $this->conexao = mysql_connect($servidor, $usuario, $senha) or die('Nao foi possivel conectar.'); mysql_select_db($banco) or die ('Nao foi possivel conectar-se. '.mysql_error()); $this->conectado = true; } } function fechar_conexao() { if($this->conectado===true) { mysql_close($this->conexao); $this->conectado = false; } } function bd_erro($sql) { $conex = $this->conexao_ig; if(empty($conex)) { $conex = $this->conexao; } if($this->debug == true ) { #$erro = error_get_last(); echo "
\nPuxa, um erro! De novo!
			\n{$mysql_error}\nExpressão SQL:\n¯¯¯¯¯¯¯¯¯¯¯¯¯\n".$sql."\n\n";
			echo "\nInformações adicionais:\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯";
			$trace = debug_backtrace();
			foreach($trace as $indice => $t) {
				if($indice > 0) {
					echo "\nArquivo: ".$t["file"]."\nlinha: ".$t["line"]." ";
					if(!empty($t["class"])) {
						echo $t["class"]."->";
					}
					echo "".$t["function"]." (";
					if(!empty($t["args"])) {
						if(is_array($t["args"])) {
							foreach($t["args"] as $args) {
								echo "\"".$args."\", ";
							}
						}
					}					
					echo ")\n";
				}
			}
			echo "
"; exit(); } } function bd_erro_old($sql) { $conex = $this->conexao_ig; if(empty($conex)) { $conex = $this->conexao; } if($this->debug == true ) { #$erro = error_get_last(); echo "
\nPuxa, um erro! Isto não é incrível?
			\n".mysql_error()."\n\nExpressão SQL:\n¯¯¯¯¯¯¯¯¯¯¯¯¯\n".$sql."\n\n";
			#if(!empty($erro)) {
				echo "Possível origem:\n¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n";
				$trace = debug_backtrace();
				echo "Arquivo: ".$trace[2]["file"]."\nlinha ".$trace[2]["line"]."\n";
				echo "\nChamando a função ".$trace[1]["function"]."\n";
				echo "linha ".$trace[1]["line"]." de ".$trace[1]["file"];
				echo "
"; #} exit(); } } // executando comandos SQL: function bd_cod($servico,$apelido_do_campo="",$condicao="") { $chamada = $servico; if(!empty($apelido_do_campo)) { $chamada = $apelido_do_campo; } //O argumento pode ser passado pelo endereço da página ou pelas palavras mágicas do conteúdo das páginas: if(array_key_exists($chamada,$_GET)) { $valor = $_GET[$chamada]; } else { $valor = $this->argumentos[0]; } if(!is_null($valor)) $valor = trim($valor); //tabela e campo if(!empty($condicao)) { $condicao = "AND $condicao"; } $tabela = "ger_$servico"; $campo = "cod$servico"; if(is_numeric($valor)) { //verifica se este código existe $sql = "SELECT $campo FROM $tabela WHERE $campo = '$valor' $condicao"; if($this->bd_campo($sql) !== false){ return $valor; } else { $valor = NULL; } } //Verifica se é para abrir o principal: if(gettype($valor)=="NULL" || empty($valor)) { if($this->bd_campoexiste($tabela,"principal")) { $sql = "SELECT $campo FROM $tabela WHERE principal=1 $condicao LIMIT 1"; $valor = $this->bd_campo($sql); return $valor; } else { return false; } } //Verifica se foi chamado pelo código, pelo título: if(is_string($valor)) { if($this->bd_campoexiste($tabela,"nome")) { $coluna = "nome"; } elseif($this->bd_campoexiste($tabela,"titulo")) { $coluna = "titulo"; } else { return false; } $sql = "SELECT $campo FROM $tabela WHERE $coluna='$valor' $condicao LIMIT 1"; $valor = $this->bd_campo($sql); return $valor; } } function bd_campoexiste($tabela,$campo) { $sql = "SELECT * FROM $tabela LIMIT 1"; $rs = mysql_query($sql); $colunas = mysql_fetch_assoc($rs); if(array_key_exists($campo,$colunas)){ return true; } else { return false; } } function bd_select($sql) { $sql = trim($sql); if(!empty($sql)) { if(strpos($sql," ")===false) { $sql = "SELECT * FROM $sql"; } $this->BD(); //$sql = mysql_real_escape_string($sql,$this->conexao); $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); if(mysql_num_rows($rs) > 0) { $L = mysql_fetch_array($rs, MYSQL_ASSOC); return $L; } else { return false; } } } function bd_campo($sql, $campo="", $valor_do_filtro="") { $sql = trim($sql); if(!empty($sql)) { if(strpos($sql," ")===false) { $filtro = str_replace("ger_","cod",$sql); if(!empty($campo)) { $sql = "SELECT $campo FROM $sql WHERE $filtro = '$valor_do_filtro' LIMIT 1"; } else { $sql = "SELECT $filtro FROM $sql LIMIT 1"; } } $this->BD(); //$sql = mysql_real_escape_string($sql,$this->conexao); //echo $sql; $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); if(mysql_num_rows($rs) > 0) { $L = mysql_fetch_array($rs, MYSQL_NUM); $Linha = $L[0]; return $Linha; } else { return false; } } } function bd_anterior_proximo($sql,$cod_atual,$campo="") { $sql = trim($sql); if(!empty($sql)) { if(strpos($sql," ")===false) { $campo = str_replace("ger_","cod",$sql); $sql = "SELECT $campo FROM $sql"; } $this->BD(); //$sql = mysql_real_escape_string($sql,$this->conexao); $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); if(mysql_num_rows($rs) > 0) { //até hoje me pergunto como consegui fazer isso while($L = mysql_fetch_array($rs)) { if(!empty($busca_o_proximo)) { //se já encontrou no loop anterior $proximo = $L[$campo]; //define o próximo $busca_o_proximo = false; // pára de procurar o próxima } if($L[$campo] == $cod_atual) {//se encontrou o atual $busca_o_proximo = true; if(!empty($codanterior)) { //pega o codanterior, passado no loop anterior $anterior = $codanterior; } } $codanterior = $L[$campo]; } $arr = array(); if(!empty($anterior)) { $arr["anterior"] = $anterior ;} if(!empty($proximo)) { $arr["proximo"] = $proximo ;} return $arr; } else { return false; } } } function bd_lista($sql) { $sql = trim($sql); if(!empty($sql)) { if(strpos($sql," ")===false) { $sql = "SELECT * FROM $sql"; } $this->BD(); //$sql = mysql_real_escape_string($sql,$this->conexao); $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); if(mysql_num_rows($rs) > 0) { $i = 0; while($L = mysql_fetch_array($rs, MYSQL_ASSOC)) { $Linha[$i] = $L; $i++; } return $Linha; } else { $Linha = array(); return $Linha; } } } function bd_quant($sql) { $sql = trim($sql); if(!empty($sql)) { if(strpos($sql," ")===false) { $sql = "SELECT * FROM $sql"; } $this->BD(); //$sql = mysql_real_escape_string($sql,$this->conexao); $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); return mysql_num_rows($rs); } } //Construindo e executando expressões SQL: function bd_executa($sql) { //Conecta ao banco de dados $this->BD(); //executa a expressão $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); } function bd_insere($tabela) { //Conecta ao banco de dados $this->BD(); //pega os nomes das colunas da tabela e passa para o array $R: $sql = "SELECT * FROM $tabela"; $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); $numcol = mysql_num_fields($rs); for($i = 0; $i < $numcol; $i++){ $R[mysql_field_name($rs,$i)] = mysql_field_name($rs,$i); } //pega os ítens do formulário, compara com as colunas da tabela e constrói expressão SQL $sqlA = ""; $sqlB = ""; $sql="INSERT INTO $tabela ("; foreach ($_POST as $coluna => $valorcoluna) { if(array_key_exists($coluna,$R)) { $sqlA .= " $coluna,"; $sqlB .= " '$valorcoluna',"; } } $sqlA = substr($sqlA,0,-1); $sqlB = substr($sqlB,0,-1); $sql .= $sqlA.") VALUES (".$sqlB.")"; //executa a expressão $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); //pega o registro recém adicionado $cod = str_replace("ideia_","cod",$tabela); $cod = str_replace("ger_","cod",$cod); $sql = "SELECT * FROM $tabela ORDER BY $cod DESC LIMIT 1"; $resultado = $this->bd_select($sql) or die($sql); return $resultado; } function bd_atualiza($tabela,$filtro="",$valor_filtro="") { //Conecta ao banco de dados $this->BD(); //pega os nomes das colunas da tabela e passa para o array $R: $sql = "SELECT * FROM $tabela"; $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); $numcol = mysql_num_fields($rs); for($i = 0; $i < $numcol; $i++){ $R[mysql_field_name($rs,$i)] = mysql_field_name($rs,$i); } //pega os ítens do formulário, compara com as colunas da tabela e constrói expressão SQL $sql = "UPDATE $tabela SET "; foreach ($_POST as $coluna => $valorcoluna) { if(array_key_exists($coluna,$R)) $sql .= " $coluna = '$valorcoluna',"; } $sql = substr($sql,0,-1); //filtro if(empty($filtro)) { $filtro = str_replace("ger_","cod",$tabela); $valor_filtro = $_POST["$filtro"]; $filtro = str_replace("ideia_","cod",$filtro); $valor_filtro = $_POST["$filtro"]; } $sql .= " WHERE $filtro = '$valor_filtro'"; //executa a expressão $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); } function bd_exclui($tabela,$filtro="",$valor_filtro="") { //Conecta ao banco de dados $this->BD(); //filtro if(empty($filtro)) { $filtro = str_replace("ger_","cod",$tabela); $valor_filtro = $filtro; $filtro = str_replace("ideia_","cod",$filtro); $valor_filtro = $filtro; } $sql = "DELETE FROM $tabela WHERE $filtro = '$_POST[$valor_filtro]'"; //executa a expressão $rs = mysql_query($sql,$this->conexao) or $this->bd_erro($sql); } function bd_listapaginada ($tabela = "", $where = "", $orderby = "", $opcao=1, $sql2 = "") { return $this->listapaginada ($tabela, $where, $orderby, $opcao, $sql2) ; } function listapaginada ($tabela = "", $where = "", $orderby = "", $opcao=1, $sql2 = "") { //Conecta ao banco de dados $this->BD(); //pegando endereço da página sem o 'p' ou o 'q' $qs = $_SERVER['QUERY_STRING']; $array_qs = split("&",$qs); $qs = ""; foreach ($array_qs as $i) { if((substr($i,0,2) != "p=") && (substr($i,0,2) != "q=")) $qs .= $i."&"; } $qs = substr($qs,0,-1); // pegando num da página a ser visualizada if(empty($_GET["p"])) { $p = 1; } else { $p = $_GET["p"]; } if(!is_numeric($p)) $p = 1; //quantidade por página if (empty($_GET["q"])) { if(empty($_COOKIE["q"])) { $q=10; } else { $q=$_COOKIE["q"]; } } else { $q=$_GET["q"]; } if(!is_numeric($q)) $q = 10; $_COOKIE["q"] = $q; // Consultando o total de registros: if(empty($sql2)) { $sql = "SELECT * FROM $tabela $where"; } else { $sql = $sql2; } $rs = mysql_query($sql,$this->conexao) or die(mysql_error()."
".$sql); $t = mysql_num_rows($rs); mysql_free_result($rs); // quantidade de páginas de resultados $tp = ceil($t/$q); if($p>$tp){$p=$tp;} // bloco de páginas if (empty($_GET["blocopg"])) { if(empty($_COOKIE["blocopg"])) { $blocopg=10; } else { $blocopg=$_COOKIE["blocopg"]; } } else { $blocopg=$_GET["blocopg"]; } if(!is_numeric($blocopg)) $blocopg = 5; $_COOKIE["blocopg"] = $blocopg; $tamanho_do_bloco = $blocopg; $total_de_blocos = ceil($tp/$tamanho_do_bloco); $bloco_atual = ceil($p/$tamanho_do_bloco); $primeira_do_bloco = $bloco_atual * $tamanho_do_bloco - $tamanho_do_bloco + 1; if($primeira_do_bloco < 1) $primeira_do_bloco = 1; $ultima_do_bloco = $bloco_atual * $tamanho_do_bloco; if($ultima_do_bloco > $tp) $ultima_do_bloco = $tp; $pagina_bloco_seguinte = $ultima_do_bloco + 1; $bloco_seguinte = " >> "; if($pagina_bloco_seguinte > $tp) { $bloco_seguinte = "";} $pagina_bloco_anterior = $primeira_do_bloco - 1; $bloco_anterior = " << "; if($pagina_bloco_anterior < $tamanho_do_bloco) { $bloco_anterior = "";} // link para as outras páginas de resultados $link_numero_das_paginas = ""; for($i=$primeira_do_bloco;$i<=$ultima_do_bloco;$i++) { if ($i != $p) { $link_numero_das_paginas .= "$i "; $img_numero_das_paginas .= " "; } else { $link_numero_das_paginas .= "$i "; $img_numero_das_paginas .= " "; } } // calculando o limite inicial para a consulta SQL $limite_inicial = abs($p * $q - $q); // consultar os registros desta página de resultados if(empty($sql2)) { $sql = "SELECT * FROM $tabela $where $orderby LIMIT $limite_inicial, $q"; } else { $sql = $sql2." LIMIT $limite_inicial, $q"; } $rs = mysql_query($sql,$this->conexao) or die(mysql_error()); $ultimo_registro = mysql_num_rows($rs); // O primeiro registro para exibição $primeiro_registro = $limite_inicial + 1; // O último registro para exibição $ultimo_registro = $primeiro_registro + $ultimo_registro - 1; //textos de navegação $pagina = "Página $p. "; $total_de_paginas = "Total de páginas: $tp. "; $ir_para = "Ir para: $link_numero_das_paginas "; ($p != $tp)?($ir_para_ultima=" Última "):($ir_para_ultima=""); ($p != 1)?($ir_para_primeira=" Primeira "):($ir_para_primeira=""); $total_geral = "Total: $t registros. "; if($t > 0) { if ($primeiro_registro == $ultimo_registro) { $total_exibido = "Exibindo registro $primeiro_registro."; } else { $total_exibido = "Exibindo de $primeiro_registro a $ultimo_registro."; } } else { $total_exibido = ""; } if($t > 5) { $quant_por_pg = "