Ir para conteúdo

POWERED BY:

Arquivado

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

H. Romeu

Funções php

Recommended Posts

Como posso criar um function que passe valores para inserir no bd [é apenas um exemplo]

 

queria vazer algo assim

 

Sql($v,$v2,$v3 | $v4, $v5, $v6 );

 

queria passar valores e separar com algum caractere no caso o '|', ao inseri-lo, mudaria o rumo, sem o | seria as colunas, valores depois do 1º | seria os valores

 

funtion Sql($v,$v2,$v3 | $v4, $v5, $v6){

 

mysql_query("INSERT INTO tabela ($v,$v2,$v3) VALUES ($v4,$v5,$v6));

 

}

 

como fazer algo do tipo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

utiliza array

function Sql($c,$v){
  ...
}
$campos = Array($campo1,$campo2,$campo3);
$valores = Array($valor1,$valor2,$valor3);
Sql($campos,$valores);

o problema é que os tipos de campos são inserido diferentemente (string, numero), tem que fazer uma coisa mais bem feita para diferenciar os campos do array

Compartilhar este post


Link para o post
Compartilhar em outros sites

Função:

 

function Sql ($v1,v2,v3) {
mysql_query("INSERT INTO tabela ($v, $v2, $v3) VALUES ($nome,$sobrenome,$cidade));

if($Sql) {
echo "Inseridos na tabela com sucesso";
} else {
echo "ERRO!";
}

 

Php(na mesma página do formulário):

 

<?php
$nome = $_REQUEST['nome'];
$sobrenome = $_REQUEST['sobrenome'];
$cidade = $_REQUEST['cidade'];
?>

 

HTML:

<form method="POST" action="suapagina.php">
<input type="text" name="nome" value="">
<input type="text" name="sobrenome" value="">
<input type="text" name="cidade" value="">
</form>

 

Não sei se era exatamente o que queria, pois não consegui entender o seu foco principal na pergunta.

Fiz aqui esse exemplo.Talvez dê certo, não estou em casa por isso não consegui testar.

Diga o que resultou.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quero é colocar um separador na chamada da função Sql('valor1'|'valor2'); // ficaria mysql_query("INSERT INTO tabela ('valor1') VALUES (valor2)");

a minha duvida ta na argumentação da função, como colocar separadores, como uma barra | ou coxete ex.: Sql('valor'|'valor2'['tabela1']); // mysql_query("INSERT INTO 'tabela1' ('valor1') VALUES ('valor2')");

Compartilhar este post


Link para o post
Compartilhar em outros sites

o separador de argumentos na chamada da função é a vírgula "," , para usar outro separador você vai ter que tratar a string e fazer a chamada usando vírgula, acho desnecessário

Compartilhar este post


Link para o post
Compartilhar em outros sites
o separador de argumentos na chamada da função é a vírgula "," , para usar outro separador você vai ter que tratar a string e fazer a chamada usando vírgula, acho desnecessário

 

o separador seria para mudar o rumo, como voce pode ver aki

 

funtion Sql($v,$v2,$v3 | $v4, $v5, $v6){

mysql_query("INSERT INTO tabela ($v,$v2,$v3) VALUES ($v4,$v5,$v6));

}

as virgulas estão lá

 

Ficaria legal fazer um objeto somente para abstrair SQL do que funções desse tipo, porque aí você pode também usar o objeto para selects, deletes, inserts ..

 

Isso me soou legal,mas como fazer algo do tipo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue uma idéia :seta: http://forum.imasters.com.br/topic/409112-proposta-de-fluent-interface-dao-phpoo/page__view__findpost__p__1718091 Digo que nos dias de hoje, eu mudaria várias coisas nesse código, tem muita coisa errada ali, mas é apenas um start-up pra você. Dei alguns exemplos de uso dos métodos http://forum.imasters.com.br/topic/409112-proposta-de-fluent-interface-dao-phpoo/page__view__findpost__p__1717960

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar uma olhada nisso amanhã, e quanto por um separador na chamada como o exemplo que passei, não a nada de parecido que se possa fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu método vai ter vários parâmetros, só isso .. basta você fazer um func_get_args, que recupera o total de argumentos da função, e dar um chunk em 3 , depois faz o implode ..

<?php
  function createInsertStatement( ){ 
		   if( func_num_args() > 0 ) {
				   $args = array_chunk( array_filter( func_get_args() ) , ( func_num_args() / 2 ) );
				   return sprintf( 'INSERT INTO ( %s ) VALUES ( %s ) ' , 
				          join( ',' , array_shift( $args ) ) , join( ',' , array_pop( $args ) ) );
		   }
  }
  echo createInsertStatement( 'nome', 'sobrenome' , 'estado' , 'andrey' , 'knupp' , 'minas' ); 

Porque a divisão ?:

( func_num_args() / 2 )

 

Se você tem 6 argumentos, 3 são campos, 3 são valores, se você tem 10 argumentos, 5 são campos, 5 são valores .. infinitamente ..

 

A saída aqui:

INSERT INTO ( nome,sobrenome,estado ) VALUES ( andrey,knupp,minas )

 

Já te dei a ferramenta, basta usa-la agora, facilmente você formata o que são campos, e valores inteiros, strings.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bakana hein andrey

 

agora só falta uma função para colocar crase nos nomes dos campos, se me permite humilde intervenção.

um detalhe faltou nome da tabela!

 
array_map( create_function('$campo', 'return "`$campo`";'), $nome_campos); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utiliza closure dessa forma .. esse create_function é horrível rsrs.

array_map( function( $campo ) {
      return "`{$campo}`";
} , $nome_campos ) ;

 

eu uso, é q algumas versões do php, se não me engano versões anteriores a 5.2, não funcionam

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.