Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS

Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

05-11-2009 22:05

Tem como eu fazer um insert desta forma.

Tipo eu uma tabela eu seleciono os jogadores cadastrados, e na frente eu coloco os campos para gols, faltas, cartões, etc...

a minha duvida é como eu faço para inserir varios valores em um unico insert só com que o id dos jogadores selecionados.

abçs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

06-11-2009 10:44

Entendi mais ou menos. Mas, pelo que entendi, você tem uma consulta que mostra os dados dos jogadores, então dentro do while, você coloca o insert, para inserir as informações da mesma consulta na tabela que deseja.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

06-11-2009 13:52

Isso mesmo, vou tentar explicar melhor.

ID Jogador Gols Faltas Cartões
1 phs22 2 1 Am
2 Web 1 0 Az

os nomes dos jogadores já estão cadastrados na tabela elenco e eu quero pegar o ID de cada um, para incluir os gols, falta, cartões na tabela dados_jogadores.

Estou tentando fazer da seguinte forma, mas não aparece erro e nem insere no banco.

if($_POST['inserir']){ for($i=0;$i<$nr_linhas;$i++){ $ID_jogador = $_POST['id']; $quadro = $_POST['quadro']; $part = $_POST['part']; $gols = $_POST['gols']; $ct_amarelo = $_POST['cp_ct_amarelo']; $ct_azul = $_POST['cp_ct_azul']; $ct_vermelho = $_POST['cp_ct_vermelho']; $faltas = $_POST['faltas']; $liga = $_POST['cp_competicao']; $data = $_POST['cp_data']; list ($dia, $mes, $ano) = split ('[/.-]', $data); $data_bd = $ano."-".$mes."-".$dia; if($part == '1'){ //monta a consulta $sql = "INSERT INTO dados_jogadores (id, ID_jogador, cp_quadro, gols, part, cp_data, cp_competicao, cp_ct_amarelo, cp_ct_azul, cp_ct_vermelho, cp_faltas) VALUES (NULL, '$ID_jogador[$i]', $quadro, '$gols[$i]', '$part[$i]', $cp_data, $comp, '$ct_am[$i]', '$ct_az[$i]', '$ct_verm[$i]', '$cp_faltas[$i]')"; // Executa a consulta verificando se foi inserido com sucesso if (mysql_query($sql)) { // Incrementa o contador } } }

Eu vi alguma coisa com array, foreach, mas não consegui resolver.

Web olha este outro jeito que tentei fazer, me parece mais pratico, mas não acontece nada.

<?php $ID_jogador = $_POST['id']; $quadro = $_POST['quadro']; $part = $_POST['part']; $gols = $_POST['gols']; $ct_amarelo = $_POST['cp_ct_amarelo']; $ct_azul = $_POST['cp_ct_azul']; $ct_vermelho = $_POST['cp_ct_vermelho']; $faltas = $_POST['faltas']; $liga = $_POST['cp_competicao']; $data = explode("/.-",$_POST['cp_data']); $data_bd = "$data[2]-$data[1]-$data[0]"; if($part == '1'){ $jogadores = array(); $jogadores[] = array('ID_jogador'=>$ID_jogador, 'cp_quadro'=>$quadro, 'part'=>$part, 'gols'=>$gols, 'cp_ct_amarelo'=>$ct_amarelo, 'cp_ct_azul'=>$ct_azul, 'cp_ct_vermelho'=>$ct_vermelho, 'cp_competicao'=>$cp_competicao, 'cp_data'=>$data_bd); $sql = "INSERT INTO 'dados_jogadores' ('ID_jogador', 'cp_quadro', 'gols', 'part', 'cp_data', 'cp_competicao', 'cp_ct_amarelo', 'cp_ct_azul', 'cp_ct_vermelho', 'cp_faltas') VALUES"; foreach($jogadores as $jogador){ $ID_jogador = $jogador['ID_jogador']; $quadro = $jogador['cp_quadro']; $gols = $jogador['gols']; $part = $jogador['part']; $cp_data = $jogador['cp_data']; $comp = $jogador['cp_competicao']; $ct_am = $jogador['cp_ct_amarelo']; $ct_az = $jogador['cp_ct_azul']; $ct_verm = $jogador['cp_ct_vermelho']; $cp_faltas = $jogador['cp_faltas']; //monta a consulta $sql .= "('{$ID_jogador}', '{$quadro}', '{$gols}', '{$part}', '{$cp_data}', '{$comp}', '{$ct_am}', '{$ct_az}', '{$ct_verm}', '{$cp_faltas}'),"; $sql = substr($sql,0,-1); mysql_query($sql); echo "incluido com sucesso"; // Executa a consulta verificando se foi inserido com sucesso } } ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

06-11-2009 15:43

No primeiro código, verifica o $nr_linhas, se tem algum valor, dá um echo ou verifica de onde ele vem. Verifica também o $part, dê um echo antes de tentar if, e veja o valor que vem.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

06-11-2009 16:10

Putz, dei um echo na variavel $part e retornando array

no form eu coloquei os nomes dos inputs assim; id[], part[], gols[].

para multiplos inserts não é assim que se faz?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

06-11-2009 21:29

Só se usa array quando um campo tem que ter vários valores, por exemplo, você vai enviar 10 nomes, então precisa de 10 inputs, e para não enviar 1 por 1, você coloca o nome do input em forma de array, para pegar todos, e trabalhar com os valores.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

07-11-2009 11:16

Então eh exatamente isso que eu quero, tipo meu insert na pratica ficaria assim

INSERT INTO dados_jogadores ('ID_jogadores','gols','part','ct_am','ct_az','ct_verm','cp_data') VALUES ('1','0','1','','','','2009-11-01'), ('2','5','1','','','','2009-11-01'),('5','0','1','','','','2009-11-01');

Dessa forma eu usuario apenas um insert, para incluir os valores, mas eu não estou sabendo recuperar os dados vindos do formulario.

eu dei um echo nos campos dessa forma

echo '<pre>'; print_r($_POST); echo '</pre>';

e os dados estão vindos corretos, eu só preciso saber como eu faço para trabalhar esses dados, abçs
Array
(
[id] => Array
(
[0] => 2
[1] => 3
[2] => 1
)

[gols] => Array
(
[0] =>
[1] => 0
[2] =>
)

[faltas] => Array
(
[0] =>
[1] => 5
[2] =>
)

[part] => Array
(
[0] => 1
)

[cp_ct_amarelo] => Array
(
[0] => S
)

[quadro] => 2
[cp_competicao] => Campeonato Paulista
[cp_data] => 07.11.2009
[placar_adver] =>
[cp_adver] =>
[cp_equipe_adver] =>
[cp_faltas] =>
[cp_cartoes] =>
[gravar] => Gravar
)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

07-11-2009 15:55

Para se pegar todos valores do array se usa o foreach, e para pegar um valor específico, usa-se o array e o índice, ex.:

echo $array[0]." ou ".$array[1];

Só que você tem que verificar o que vai ser a base do seu script, ou seja, o array que vai comandar os inserts, e a partir dele com o foreach, você faz os inserts.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

07-11-2009 21:58

tipo eu quero usar apenas os dados que a variavel $part estiver marcada.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

08-11-2009 15:05

part seria o que, um checkbox? Você tem que validar se veio valor "checado", e iniciar o processo do insert de acordo. Se possível coloca o documento online, vai ajudar para entender o problema.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

09-11-2009 10:43

Segue o link do formulario http://www.primusfs.com.br/add_ficha_tecnica.

Tipo eu só quero incluir no banco, os jogadores que eu selecionar o checkbox PART.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

09-11-2009 11:43

Estuda esse script

<form action="" method="POST"> jogador <input type="checkbox" name="jogador[]" value="jogador 1"> gol <input type="input" name="gol[]" value=""> cartão amarelo <input type="checkbox" name="amarelo[]" value="1"> <br> jogador <input type="checkbox" name="jogador[]" value="jogador 2"> gol <input type="input" name="gol[]" value=""> cartão amarelo <input type="checkbox" name="amarelo[]" value="2"> <input type="submit"> </form> <?php if($_POST) { extract($_POST); if($jogador!="") { foreach($jogador as $chave => $Jogador) { echo "Jogador: <b>$Jogador</b> com <b>".$gol[$chave]."</b> gols e <b>".$amarelo[$chave]."</b> cartões amarelos.<br>"; } } } ?>

0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

09-11-2009 14:20

Tentei adaptar seu código ao meu estou quase chegando no que eu quero.

Olha na pagina e veja que eu dei um echo na variavel $sql, e a rotina está certinha, mas nada de cadastrar no banco.

E outra coisa que não consegui entender bem, foi que, se eu selecionar os jogadores sem selecionar o primeiro, ficam alguns dados em branco. vou colocar abaixo o código do form que envia e o que recebe, veja se consegue achar algo errado.

Vlw

Form_envia
<?php $seleciona = mysql_query("Select * from elenco where cp_ativo='S' order by cp_jogador asc"); $nr_linhas = mysql_num_rows($seleciona); ?> <form id="ficha_tecnica" name="ficha_tecnica" action="add_ficha_confirm" method="post"> <table id="ficha_tecnica" summary="Ficha T&eacute;cnica 2010"> <thead> <tr> <th colspan="6"> Ficha T&eacute;cnica 2010 </th> </tr> </thead> <tbody> <tr> <th style="width: 5%;"> ID </th> <th style="width: 5%;"> Part. </th> <th style="width: 30%;"> Jogador </th> <th> Gols </th> <th> Cart&otilde;es </th> <th> Faltas </th> </tr> <?php $list = 1; while($campo = mysql_fetch_array($seleciona)){ extract($campo); $part = $list++; ?> <tr> <td scope="row"> <?php echo $id; ?> <input type="hidden" name="id[]" value="<?php echo $id; ?>" /> </td> <td> <input name="part[]" type="checkbox" value="<?php echo $part++; ?>"> </td> <td style="font-size:18px"> <strong><?php echo $cp_jogador; ?></strong> </td> <td> <input name="gols[]" type="text" /> </td> <td> <input name="cp_ct_amarelo[]" type="checkbox" value="S"> <img src="imgs/site/ct_amarelo.png" alt="Amar." /> <input name="cp_ct_azul[]" type="checkbox" value="S"> <img src="imgs/site/ct_azul.png" alt="Azul" /> <input name="cp_ct_vermelho[]" type="checkbox" value="S"> <img src="imgs/site/ct_vermelho.png" alt="Verm." /> </td> <td> <input type="text" name="faltas[]" /> </td> </tr> <?php } ?> <tr> <th colspan="3"> Quadro </th> <th colspan="2"> Competi&ccedil;&atilde;o / Liga </th> <th colspan="1"> Data </th> <tr> <td colspan="3"> <input name="quadro" type="radio" value="1"> 1&deg; Quadro <input name="quadro" type="radio" value="2"> 2&deg; Quadro <input name="quadro" type="radio" value="3"> Sele&ccedil;&atilde;o </td> <td colspan="2"> <input name="cp_competicao" type="text" id="cp_competicao" style="width: 95%" /> </td> <td colspan="1"> <input name="cp_data" type="text" id="cp_data" maxlength="10" style="width: 90%" /> </td> </tr> </table> <table> <tr> <th style="width: 50px"> Placar </th> <th> Advers&aacute;rio </th> <th colspan="2"> Jogadores </th> <th> Faltas </th> <th> Cart&otilde;es </th> </tr> <tr> <td> <input name="placar_adver" type="text" style="width: 20px" /> </td> <td> <input name="cp_adver" type="text" style="width: 90%" /> </td> <td colspan="2"> <textarea rows="1" name="cp_equipe_adver" style="width: 90%"></textarea> </td> <td> <textarea rows="1" name="cp_faltas" style="width: 90%"></textarea> </td> <td> <textarea rows="1" name="cp_cartoes" style="width: 90%"></textarea> </td> </tr> <tr> <td colspan="6" style="height: 45px"> <input type="submit" name="gravar" value="Gravar"> || <input type="reset" value="Limpar"> </td> </tr> </tbody> </table> </form>

Form_recebe.php

<?php echo '<pre>'; print_r($_POST); echo '</pre>'; if($_POST) { extract($_POST); $cadastrados = '0'; list ($dia, $mes, $ano) = split ('[/.-]', $cp_data); $data_bd = $ano."-".$mes."-".$dia; $sql = "INSERT INTO dados_jogadores ('ID_jogador', 'cp_quadro', 'gols', 'part', 'cp_data', 'cp_competicao', 'cp_ct_amarelo', 'cp_ct_azul', 'cp_ct_vermelho', 'cp_faltas') VALUES"; if($part!="") { foreach($part as $chave => $partida) { if($cp_ct_amarelo[$chave] == ""){$cp_ct_amarelo[$chave] = 'N';} if($cp_ct_azul[$chave] == ""){$cp_ct_azul[$chave] = 'N';} if($cp_ct_vermelho[$chave] == ""){$cp_ct_vermelho[$chave] = 'N';} $sql .= " ('".$id[$chave]."', '".$quadro."', '".$gols[$chave]."', '".$part[$chave]."', '".$data_bd."', '".$cp_competicao."', '".$cp_ct_amarelo[$chave]."', '".$cp_ct_azul[$chave]."', '".$cp_ct_vermelho[$chave]."', '".$faltas[$chave]."'),"; } } $sql = substr($sql,0,-1); if(mysql_query($sql)){ $cadastrados++; }else{ echo ":: ERRO ::<br />"; } // Pega o número de registros inseridos $cadastrados = mysql_affected_rows(); echo 'Jogadores cadastrados: ' . $cadastrados .'<br />'; echo $sql; } ?>

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

09-11-2009 14:32

Web, consegui fazer cadastrar no banco, era tirar a aspas simples dos nomes das colunas.

Mas ainda não entendi direito o pq da pagina de confirmação pegar os dados selecionados pegar os dados cadastrados pela ordem.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

09-11-2009 14:58

Geralmente os dados são mostrados na ordem que forem enviados.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

09-11-2009 15:19

sim correto. Mas tenho tres cadastros, e quero selecionar apenas o terceiro, ele manda os dados do primeiro.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

09-11-2009 15:35

Não entendi, posta um exemplo simples do seu código onde acontece isso.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

09-11-2009 16:14

Até você verificar.

Entre na página http://www.primusfs.com.br/add_ficha_tecnica e selecione o jogador com id 14, vem de mandar esse jogador para cadastrar no banco ele manda o id do 3 que é o primeiro da lista.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

09-11-2009 17:55

O ideal seria você pegar o índice do array. Tipo, criar um índice para cada linha, para capturar os dados dela. Mas ai tem que estudar esse problema melhor.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 166

Duvida insert

11-11-2009 13:40

ótimo web, consegui fazer da forma abaixo, vlw

<?php $seleciona = mysql_query("Select * from elenco where cp_ativo='S' order by cp_jogador asc"); $nr_linhas = mysql_num_rows($seleciona); ?> <form id="ficha_tecnica" name="ficha_tecnica" action="add_ficha_confirm" method="post"> <table id="ficha_tecnica" summary="Ficha T&eacute;cnica 2010"> <thead> <tr> <th colspan="6"> Ficha T&eacute;cnica 2010 </th> </tr> </thead> <tbody> <tr> <th style="width: 5%;"> ID </th> <th style="width: 5%;"> Part. </th> <th style="width: 30%;"> Jogador </th> <th> Gols </th> <th> Cart&otilde;es </th> <th> Faltas </th> </tr> <?php $list = 1; while($campo = mysql_fetch_array($seleciona)){ extract($campo); $serial = $list++; ?> <tr> <td scope="row"> <?php echo $id; ?> <input type="hidden" name="id[<?php echo $serial; ?>]" value="<?php echo $id; ?>" /> </td> <td> <input name="part[<?php echo $serial; ?>]" type="checkbox" value="<?php echo $serial; ?>"> </td> <td style="font-size:18px"> <strong><?php echo $cp_jogador; ?></strong> </td> <td> <input name="gols[<?php echo $serial; ?>]" type="text" /> </td> <td> <input name="cp_ct_amarelo[<?php echo $serial; ?>]" type="checkbox" value="S"> <img src="imgs/site/ct_amarelo.png" alt="Amar." /> <input name="cp_ct_azul[<?php echo $serial; ?>]" type="checkbox" value="S"> <img src="imgs/site/ct_azul.png" alt="Azul" /> <input name="cp_ct_vermelho[<?php echo $serial; ?>]" type="checkbox" value="S"> <img src="imgs/site/ct_vermelho.png" alt="Verm." /> </td> <td> <input type="text" name="faltas[<?php echo $serial; ?>]" /> </td> </tr> <?php } ?> <tr> <th colspan="3"> Quadro </th> <th colspan="2"> Competi&ccedil;&atilde;o / Liga </th> <th colspan="1"> Data </th> <tr> <td colspan="3"> <input name="quadro" type="radio" value="1"> 1&deg; Quadro <input name="quadro" type="radio" value="2"> 2&deg; Quadro <input name="quadro" type="radio" value="3"> Sele&ccedil;&atilde;o </td> <td colspan="2"> <input name="cp_competicao" type="text" id="cp_competicao" style="width: 95%" /> </td> <td colspan="1"> <input name="cp_data" type="text" id="cp_data" maxlength="10" style="width: 90%" /> </td> </tr> </table> <table> <tr> <th style="width: 50px"> Placar </th> <th> Advers&aacute;rio </th> <th> Jogadores </th> <th> Gols </th> <th> Faltas </th> </tr> <tr> <td> <input name="placar_adver" type="text" style="width: 20px" /> </td> <td> <input name="cp_adver" type="text" style="width: 90%" /> </td> <td> <textarea rows="1" name="cp_equipe_adver" style="width: 90%"></textarea> </td> <td> <textarea rows="1" name="cp_gols_vs" style="width:90%"></textarea> </td> <td> <textarea rows="1" name="cp_faltas" style="width: 90%"></textarea> </td> </tr> <tr> <th colspan="2"> Cart&otilde;es Amarelos </th> <th colspan="2"> Cart&otilde;es Azuis </th> <th colspan="2"> Cart&otilde;es Vermelhos </th> </tr> <tr> <td colspan="2"> <textarea rows="1" name="ct_am_vs" style="width: 90%"></textarea> </td> <td colspan="2"> <textarea rows="1" name="ct_az_vs" style="width: 90%"></textarea> </td> <td colspan="2"> <textarea rows="1" name="ct_verm_vs" style="width: 90%"></textarea> </td> </tr> <tr> <td colspan="6" style="height: 45px"> <input type="submit" name="gravar" value="Gravar"> || <input type="reset" value="Limpar"> </td> </tr> </tbody> </table> </form>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17245
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Duvida insert

11-11-2009 19:33

Boa :;)
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:

Quem está online

Usuários navegando neste fórum: Bing [Bot]