Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nícolas

Função Para Gravar No Banco De Dados

Recommended Posts

E ai povo beleza!!!

 

Seguinte, eu to criando em um arquivo chamado constantes.php com 4 function.

[*]gravanobd

[*]apagadobd

[*]editadados

[*]exibedados

Seguinte, oq eu quero fazer é agilizar os comandos com o BD, e poder fazer tudo apartir de um unico arquivos.

 

Minha function ta funcionando bem só que eu queria fazer uma coisa que ta dificil.

 

 

function gravanobd

 

Eu vou colocar um exemplo com o grava no bd, como ta funcionando, da eu explico minha dúvida.

 

constantes.php

PHP

[*]<?

[*]//============================================================================//

[*]// FUNÇÃO PARA GRAVAR NO BD

[*] function gravanobd($tabela,$campos,$valores,$pagina){

[*]

[*]

[*]

[*] //Trata os campos para o BD

[*] $campos = explode("|",$campos);

[*] $totaldecampos = count($campos);

[*] $totaldecampos2 = count($campos);

[*]

[*] $grava = "INSERT INTO $tabela (";

[*]

[*] for ($i=0;$i<$totaldecampos;$i++){

[*]

[*] $grava .= $campos[$i];

[*]

[*]  if ($totaldecampos2 -= 1){

[*]  $grava .= ",";

[*]  }

[*]

[*] }

[*]

[*]

[*]

[*]

[*] //Trata os valores para o BD

[*] $valores = explode("|",$valores);

[*] $totaldevalores = count($valores);

[*] $totaldevalores2 = count($valores);

[*]

[*] $grava .= ") VALUES (";

[*]

[*] for ($i=0;$i<$totaldevalores;$i++){

[*]

[*] $grava .= "'".$valores[$i]."'";

[*]

[*]  if ($totaldevalores2 -= 1){

[*]  $grava .= ",";

[*]  }

[*] }

[*]

[*]

[*]  $grava .= ")";

[*]

[*]

[*]

[*] // GRAVA NO BANCO DE DADOS

[*]$gravar = mysql_query($grava);

[*]

[*]if ($gravar == 1){

[*] include $pagina;

[*]}else{

[*] echo "Erro no servidor:<br>".mysql_error();

[*]}

[*]

[*] }

[*]

[*]?>

 

grava.php

PHP

[*]<?

[*]include "config.php";

[*]include "constantes.php";

[*]

[*]//============================================================================//

[*]// DADOS

[*]

[*]

[*] // DADOS DO SITE

[*] $tabela = "tabela";

[*]

[*]

[*] // DADOS A SEREM GRAVADOS

[*] $pagina = 'gravado.tpl';

[*] $nome = "Nícolas";

[*] $sobrenome = "Vieira Rossett";

[*] $idade = "18";

[*]

[*]  // VALORES

[*] $campos = "nome|sobrenome|idade";

[*] $valores = $nome."|".$sobrenome."|".$idade;

[*]

[*]//============================================================================//

[*]// FUNÇÃO - GRAVA NO BANCO DE DADOS

[*] gravanobd($tabela,$campos,$valores,$pagina);

[*]

[*]?>

 

Oque eu quero fazer é o seguinte, reparem que ao incluir o arquivo constante é só chamar a função.

 

Ele ta gravando no bd, direitinho, mas eu queria facilitar só uma coisa.

 

Eu tava tentando assim:

$campos = '$nome|$sobrenome|$idade';

$campos = $valores;

 

Dai na variavel $campos em usava o str_replace para retirar o cifrão ($), e explodia para separar em arrays.

 

E eu fazia um explode na | (barra) do $valores para ele separar tb em arrays

 

 

Dai ele gravava certo o nome do campo.

 

INSERT INTO tabela (nome,sobrenome,idade)

 

Já os valores ele salva-va no bd assim.

 

VALUES ('$nome','$sobrenome','$idade')

 

E não VALUES ('Nícolas','Vieira Rossett','18')

 

Pois ele gravava a variavel no BD, não o valor dela.

 

Já quando eu colocava assim:

 

$campos = $nome."|".$sobrenome."|".$idade';

$campos = $valores;

 

Fazendo os devidos tratamentos, ele tentava gravar assim:

INSERT INTO tabela (Nícolas,Vieira Rossett,18) VALUES ('Nícolas','Vieira Rossett','18')

 

Alguem sabe como eu faço para em uma só variavel (como eu tava tentando).

 

Ou seja, eu precisar alterar somente a variavel $campo no grava.php podento assim retirar o $valores do grava.php.

 

Ele ler o $campo como variavel e no $valor ele ler o valor da variavel???

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum...seu problema é simples cara... ao invez de usar INSERT INTO tabela (nome,sobrenome,idade)VALUES ('$nome','$sobrenome','$idade')voce pode usar apenas:INSERT INTO tabela VALUES ('$nome','$sobrenome','$idade')ai reconheceria os campos sozinho... ou voce teria que passar 2 parametros 1 array com o nome dos campos e o outro com os valores..porque quando voce define uma variavel com aspas simples ela fica igual aquele valor, ou seja $bar = '$teste'; // o valor seria $teste, agora se eu defino $bar = $teste; // o valor seria o valor de testeentendeu ?[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tinha pensado nisso, mas só poderia utilizar assim quando fossem preenchidos todos os campos.Mas tem o campo id, que eu não adiciono.Por tanto esta opção não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom ai depende de quantos campos tem... mais o id é o de menos ^^so usa:INSERT INTO tabela VALUES ('','$nome','$sobrenome','$idade')mais tem aquela segunda opcao tambem ^^[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode crer, nem pensei em utilizar assim.Mas como eu nunca testei isso, tando os dos apóstrofos sem conteudo nele não tem risco de ele chegar vazio no BD???Será que eu não teria que tentar assim:INSERT INTO tabela VALUES (,'$nome','$sobrenome','$idade')obs: Só não tiro minha dúvida agora testando pois to no trabalho!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.