Ir para conteúdo
Fórum Script Brasil
  • 0

Sobre Esta Função


Guilherme014

Pergunta

estou tentando fazer una função o que ela terá de fazer: unsure.gif

OBS = O que esta de vermelho esta tranquilo e os de azul são as minha dúvidas

1º - ela lerá todos os dados de uma tabela...

2º - ela trará consigo todos os dados e gravará en un array

3º - logo depois ela ira pegar dado a dado deste array e receberá os dados das variáveis do form.

4º - depois pegarás os dados das variaveis e da array e gravar numa determinada tabela.

5º - Excluir esta array

6º - Exibir as mensagens adequadas

se alguém puder me ajudar beleza...

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

posta ae o q tu já fez pra gente dar uma olhadinha... e testa pegando normalmente, tu estás buscando no bd, coloca um laço depois, e atribui as variáveis com um índice "dinâmico" (o incrementador do laço), então tu manda gravar na tabela tu quer, ae tu toca um unset no array e acho q funciona... faz o teste...

http://br2.php.net/manual/pt_BR/function.unset.php

Dá uma olhada em array_splice tb, achoq é bem interessandte pro teu cod...

http://br2.php.net/manual/pt_BR/function.array-splice.php

Link para o comentário
Compartilhar em outros sites

  • 0

include("../login/funcoes.php");

include("../login/conexao.php");

conexao_mysql($host,$user,$pass,$db_padrao);

function gravar_tabela(Não sei o que ponho aqui) {

//Esta variavel tabela virá de outro form, vindo de um post, eu não sei se ponho aqui ou ponho ali en cina aonde esta vermelho

$tabela = $_POST['tabela'];

$buscar_tipotabela = mysql_query("SELECT tt_tabela FROM tipoxtabelas WHERE tt_tabela='$tabela'") or die (mysql_error());

$tipostabelas = mysql_num_rows($buscar_tipotabela);

if ($tipostabelas < 0) {

echo "Não foi possível completar a gravação desdes dados por falta de campos nesta tabela !!!";

exit();

} else {

//este campo de azul em baixo, é o mesmo id para todas as tabelas.

$contartabela = mysql_query("SELECT count(id) FROM $tabela") or die (mysql_error());

$contar = mysql_num_rows($contartabela);

echo "$contar";// no caso so esta paracendo 1 e no caso a tabela tem 49 campos

for ($a=0;$a<count($contar);$a++)//tambem estou com duvidas, mas o ensamento é que este contador volta com o numeros de tabelas, aqui no caso as 49 e a query insert vai fazer a inserlção dos 49 itens da tabela...

{

$tipo_tabela = mysql_query("INSERT INTO $tabela () VALUES ()") or die (mysql_error());

/// daqui para frente ainda estou com duvidas, porque não sei o que fazer em questão de como jogar os valores das variveis aqui e se pode ser feito... exemplo campo 1 = cod = 50, campo2 = nome = lápis e assim vai...

}

}

se não entender eu repito passo a passo.

Link para o comentário
Compartilhar em outros sites

  • 0

Tua função vai receber algum parâmetro??? Digamos que tu a chame sem precisar envair nada pra ela interpretar, então tu n precisa colcoar nada onde tá em vermelho...

Quanto ao $_POST, pode deixar como está mesmo, porque ele é global...

n saquei coeh desse tu id aqui

$contartabela = mysql_query("SELECT count(id) FROM $tabela") or die (mysql_error());
Essa linha aqui, tu colocaste só pra ex ou tu vai tentar inserir nada em nada mesmo???
$tipo_tabela = mysql_query("INSERT INTO $tabela () VALUES ()") or die (mysql_error());
/// daqui para frente ainda estou com duvidas, porque não sei o que fazer em questão de como jogar os valores das variveis aqui e se pode ser feito... exemplo campo 1 = cod = 50, campo2 = nome = lápis e assim vai...

Já me explica como q funciona esse teu array ae...

ve se to no mesmo pensamento

?=nomedocampo=valor

Nome do campo é o "título" da tua coluna na tabela??? E o q é o campo 1...???

wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

campo 1 = cod = 50 - aqui fala que o campo 1 é contator desta tabela........

Tua função vai receber algum parâmetro??? Digamos que tu a chame sem precisar envair nada pra ela interpretar, então tu n precisa colcoar nada onde tá em vermelho...

Quanto ao $_POST, pode deixar como está mesmo, porque ele é global...

sim ela vai recebert o parametro $tabela e $id

n saquei coeh desse tu id aqui

$contartabela = mysql_query("SELECT count(id) FROM $tabela") or die (mysql_error());

como esta função receberá todas as funções de gravar tabela quando o usuário clicar em gravar, ela contaria quantos campos da tabela, isto é, a tabela de nota_fiscal tem 50 campos, para ser usado neste for

for ($a=0;$a<count($contar);$a++)//tambem estou com duvidas, mas o ensamento é que este contador volta com o numeros de tabelas, aqui no caso as 49 e a query insert vai fazer a inserlção dos 49 itens da tabela...

{

$tipo_tabela = mysql_query("INSERT INTO $tabela () VALUES ()") or die (mysql_error());

/// daqui para frente ainda estou com duvidas, porque não sei o que fazer em questão de como jogar os valores das variveis aqui e se pode ser feito... exemplo campo 1 = cod = 50, campo2 = nome = lápis e assim vai...

}

no caso esta linha estaá vazia porque eu não o que colocar aonde está de azul....,

$tipo_tabela = mysql_query("INSERT INTO $tabela (aqui) VALUES (aqui)") or die (mysql_error());

se por acaso eu não estiver explicado direito ou se você não entendeu pode perguntar novamente que eu vou te explicar passo a passo.....

Link para o comentário
Compartilhar em outros sites

  • 0

brother, dá uma lida nso comentários, e me diz como q tá aestrutura do teu bd e o q tu quer inserir na tabela... q campos??? saca???

n copia o cód q n vai funcionar ainda heheh foram só uns retoques malucos smile.gif

<?php
/*
Se tu estás pegando as vars $tabela e $id de um formulário, n precisa nada de parâmetro
porque o array _POST é global, funçiona em qualquer lugar do cód, se n, se por algum motivo tu precisar
dizer qual é a var, chama assim
function gravar_tabela($tabela, $id) { //tem q chamar assim, gravar_tabela("nomedatabela","iddamesma"); ou com vars...
e apaga/comenta a linha $tabela = $_POST['tabela'];
*/
function gravar_tabela() {
conexao_mysql($host,$user,$pass,$db_padrao);  //conecta no bd

$tabela = $_POST['tabela'];
$id= $_POST['id'];

$buscar_tipotabela = mysql_query("SELECT tt_tabela FROM tipoxtabelas WHERE tt_tabela='$tabela'") or die (mysql_error());
$tipostabelas = mysql_num_rows($buscar_tipotabela);

if ($tipostabelas < 0) {//filtro
echo "Não foi possível completar a gravação desdes dados por falta de campos nesta tabela !!!";
exit();
}
else {
$contartabela = mysql_query("SELECT count($id) FROM $tabela") or die (mysql_error());
$contar = mysql_num_rows($contartabela);
echo "$contar";// no caso so esta paracendo 1 e no caso a tabela tem 49 campos
for ($a=0;$a<count($contar);$a++)//count() é pra contar array (conta o nº de elementos, se n for array só tem um sempre), $contar n é um array
{
$tipo_tabela = mysql_query("INSERT INTO $tabela () VALUES ()") or die (mysql_error());
//cara, eu ainda n entendi esse teu exemplo campo 1 = cod = 50, campo2 = nome = lápis e assim vai...
}
}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

antes de mais nada valeu mesmo....

brother, dá uma lida nso comentários, e me diz como q tá aestrutura do teu bd e o q tu quer inserir na tabela... q campos??? saca???

n copia o cód q n vai funcionar ainda heheh foram só uns retoques malucos

não precisa preocupar não eu ainda não vou copia-lo..

dois exemplos de como estão minhas tabelas, não sei sé é isso que você quer....

----------------------------------------------------------

|1º  - NOTA FISCAL        |        2º - PRODUTO  |

|--------------------------------------------------------|

|      nf_cod                    |              pr_cod        |

|--------------------------------------------------------|

|      nf_numero              |              pr_preco    |

|--------------------------------------------------------|

|      nf_cpfcnpj              |              pr_valor    |

|--------------------------------------------------------|

|      nf_nomefantasia      |              pr_nome    |

|--------------------------------------------------------|

|              ..........            |                  ......        |

---------------------------------------------------------|

e assim vai......

elas saun un pouco grande, a de nota fiscal tem +- 50 campos e de produtos tem +- 20

o que vou inserir na tabela,

Link para o comentário
Compartilhar em outros sites

  • 0

bha meu velho deu um tilt aqui no setor pensante, o tico pego umas vars do teco e eles se pegaram afuuu.. hehhe

Cara as soluções q eu encontrei no momento (programando desde as 8:00 hehhe a caxola tá fundida):

1. se forem poucas tabelas, salvar onome dos campos em um array(um para cada tabela...)

2. base de dados... uma nova tabelinha id pra lá, id pra cá...

por enquanto n tive nenhuma idéia magnífica, mas se tiver algo melhor do q isso eu posto aqui certo???

ps.: n vo me esqueçer, porque agora fiquei encucado c a coisa hehehe viro desafio hiuahiuhahiuahiuhai

EDITANDO

cara dá uma mão ae, os neorônios pararam de brigar... se alguém souber de uma funçao q retorne o nome dos campos a da tabela, ajuda pra caramba acho q deve ter alguma q retorne em um array por exemplo: $var['nome_do_campo']['valor']; dae tu passa um foreach nesse array e tá td resolvido... wink.gif eu ainda n achei, mas to procurando qualquer coisa edito again...

Editado por lemissel
Link para o comentário
Compartilhar em outros sites

  • 0

não esquenta não que eu tambem fico assim de manha delhpi e a tarde PHP e a noite faculdade

olha só como coloquei

include("funcoes.php");
include("conexao.php");
conexao_mysql($host,$user,$pass,$db_padrao);
$id  = 'nf_cod';
$tabela = 'nota_fiscal';
$tipo_tabela = mysql_query("SELECT * FROM $tabela") or die (mysql_error());
$dados = mysql_fetch_assoc($tipo_tabela);
for($i;$i<$dados;$i++) {
	$sql = mysql_query("INSERT INTO $tabela VALUES ($dados['campo'])") or die (mysql_error());
}

só que deu este erro.....

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs\asn_industrial\class\gravar_dados.php on line 10

Link para o comentário
Compartilhar em outros sites

  • 0

quando acontece isso, geralmente uma var ou um ponto e vírgula n exite...

eu n achei nenhum ; faltando, v as tuas vars.. e essa linha tá faltando cosia

$sql = mysql_query("INSERT INTO $tabela (/*aqui tem q ter os nomes dos campsos*/) VALUES ($dados['campo'])") or die (mysql_error());

eu tava bolando um esquema aqui parecido, mas tu já te ligo em qunatas consultas o scriptb vai fazer no bd??? vai enloquece o server...

while($resp=mysql_fetch_array($query)){ //retorna dados do db
foreach($resp as $indice => $valor){
   mysql_query("INSERT INTO $tabela ('".$indice."') VALUES ('".$valor."')");
}
}

da uma pesquisada em mysql_fetch_array($query,'MYSQL_BOTH') http://br2.php.net/manual/pt_BR/ref.mysql.php tb q acho q pode ajudar...

e eu ainda to encucado, se tu conseguir psota ae tb por favor heheh eu vo tentando aqui...

Link para o comentário
Compartilhar em outros sites

  • 0
quando acontece isso, geralmente uma var ou um ponto e vírgula n exite...

eu n achei nenhum ; faltando, v as tuas vars.. e essa linha tá faltando cosia

$sql = mysql_query("INSERT INTO $tabela (/*aqui tem q ter os nomes dos campsos*/) VALUES ($dados['campo'])") or die (mysql_error());

eu tava bolando um esquema aqui parecido, mas tu já te ligo em qunatas consultas o scriptb vai fazer no bd??? vai enloquece o server...

while($resp=mysql_fetch_array($query)){ //retorna dados do db
foreach($resp as $indice => $valor){
   mysql_query("INSERT INTO $tabela ('".$indice."') VALUES ('".$valor."')");
}
}

da uma pesquisada em mysql_fetch_array($query,'MYSQL_BOTH') http://br2.php.net/manual/pt_BR/ref.mysql.php tb q acho q pode ajudar...

e eu ainda to encucado, se tu conseguir psota ae tb por favor heheh eu vo tentando aqui...

$sql = mysql_query("INSERT INTO $tabela (/*aqui tem q ter os nomes dos campsos*/) VALUES ($dados['campo])") or die (mysql_error());

em questão da parte azul de cima, é que vao ser dom mesmo que as values

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...