Nilson N 0 Denunciar post Postado Agosto 25, 2007 Eu fiz esse formulário e gostaria de saber se tem como inserir esses dados num bd usando Array ou eu tenho que colocar uma variável diferente para cada campo?<?include "protecao.php";if(isset($_GET["Data"])){ $Data = $_GET["Data"]; echo "<center><h1>Jogos do dia: " .$Data. "<h1></center>";}?><HTML><HEAD> <TITLE>Adicionar Jogos</TITLE></HEAD><BODY><table border="0" width="100%"><?for ($i=1; $i<=6; $i++){?><tr> <td colspan="6"><b>Jogo nº<? echo $i ?></b></td></tr><tr> <td>Local:</td> <td><input type="text" size="13" value="Campo" disabled></td> <td><input type="text" size="13" value="Quadra 1" disabled></td> <td><input type="text" size="13" value="Quadra 2" disabled></td> <td><input type="text" size="13" value="Quadra P" disabled></td> <td><input type="text" size="13" value="Vôlei de Praia" disabled></td></tr><tr> <td>Campeonato:</td> <td><input type="text" name="Campeonato[]" size="13" value="Futebol" disabled></td> <td><select name="Campeonato[]" size="1"> <option></option> <option>Basquete</option> <option>Futsal</option> </select></td> <td><select name="Campeonato[]" size="1"> <option></option> <option>Basquete</option> <option>Futsal</option> </select></td> <td><input type="text" name="Campeonato[]" size="13" value="Vôlei" disabled></td> <td><input type="text" name="Campeonato[]" size="13" value="Vôlei" disabled></td></tr><tr> <td>Mandante:</td><?$numero=1;while ($numero<=5){$numero++;?> <td><select name="Mandante[]" size="1"> <option></option> <option>América</option> <option>Atlético - MG</option> <option>Atlético - PR</option> <option>Botafogo</option> <option>Corinthians</option> <option>Cruzeiro</option> <option>Figueirense</option> <option>Flamengo</option> <option>Fluminense</option> <option>Goiás</option> <option>Grêmio</option> <option>Internacional</option> <option>Juventude</option> <option>Náutico</option> <option>Palmeiras</option> <option>Paraná</option> <option>Santos</option> <option>São Paulo</option> <option>Sport</option> <option>Vasco</option> <option>Ponte Preta</option> <option>Fortaleza</option> <option>São Caetano</option> <option>Santa Cruz</option> <option>Portuguesa</option> </select></td><?}?></tr><tr> <td>Visitante:</td><?$numero=1;while ($numero<=5){$numero++;?> <td><select name="Mandante[]" size="1"> <option></option> <option>América</option> <option>Atlético - MG</option> <option>Atlético - PR</option> <option>Botafogo</option> <option>Corinthians</option> <option>Cruzeiro</option> <option>Figueirense</option> <option>Flamengo</option> <option>Fluminense</option> <option>Goiás</option> <option>Grêmio</option> <option>Internacional</option> <option>Juventude</option> <option>Náutico</option> <option>Palmeiras</option> <option>Paraná</option> <option>Santos</option> <option>São Paulo</option> <option>Sport</option> <option>Vasco</option> <option>Ponte Preta</option> <option>Fortaleza</option> <option>São Caetano</option> <option>Santa Cruz</option> <option>Portuguesa</option> </select></td><?}?></tr><tr><td height="20"></td></tr><?}?><tr><td align="center" colspan="6"><input type="submit" value="Adicionar Jogos"></td></tr></table></BODY></HTML> Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 25, 2007 se for para campos com o mesmo nome use foreach!!abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 25, 2007 Como eu uso o foreach nesse formulário? Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 25, 2007 bem.... não deu pra ler todo o seu código mas...ok>:foreach ($_POST['id'] as $id => $valor) {$id = $valor;faz a coneção com o bd.insere o(s) valor(s)depois fechao loop foreach com }no lugar de id você coloca o noime do campo do seu form.posta se der ou não der certo!!!!! Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 25, 2007 Eu tentei fazer o que você disse mas a função foreach só retorna isso: CampeonatoMandante Os campos que eu fiz no formulário foram: Campeonato[], Local[], Mandante[], Visitante. Cada campo foi repetido 30 vezes. Eu não sei se fazendo Campeoanto[] o php já entende como array, ou seja, minha dúvida é o que devo por no name do campo e se o nome é igual para todos os campos? Eu quero que quando clico em Adicionar Jogos todas as 30 entradas de cada um dos 4 campos seja inserida nessa tabela: -- -- Estrutura da tabela `jogos` -- CREATE TABLE `jogos` ( `CodJogo` smallint(6) NOT NULL auto_increment, `competicao` varchar(20) default NULL, `local` varchar(20) default NULL, `CodTime_A` smallint(6) NOT NULL default '0', `CodTime_B` smallint(6) NOT NULL default '0', PRIMARY KEY (`CodJogo`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 25, 2007 faz um teste:::tente vez de declarar valores nos options<option value='santos'>santos</option> Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 25, 2007 bem... e entendi bem...você quer inserir todo os nomes dos times de uma só vez....se for...em vez do select use checkbox ou radio!!!! Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 25, 2007 Eu não posso usar radio ou checkbox porque o site ficaria enorme verticalmente.O que eu quero é que fique assim:Jogo 1:a x b : basquetec x d : voleie x f : futebolg x h: futsalEu não posso colocar checkbox para ele escolher 2 opções entre 20 possíveis. E ainda ter que fazer isso várias vezes.visualiza o site em funcionamento para você entender melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 25, 2007 Tem como você mostra um exemplo ,concreto do foreach que aí eu me viro sozinho? Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 26, 2007 foreach ($_POST['id'] as $id => $valor) {$id = $valor;faz a coneção com o bd.insere o(s) valor(s)depois fechao loop foreach com }no lugar de id você coloca o noime do campo do seu form.Dúvidas: O nome dos campos do form tem que ser o mesmo para todos? O nome deve ser: id ou id[] ou id[1]?Como eu pego os valores do Foreach para inseri-los no bd? Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 26, 2007 kd o endereço: Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 26, 2007 O site tá em localhost. Se seu PC tiver servidor tenta senão só tira essas dúvidas que eu me viro:O nome dos campos do form tem que ser o mesmo para todos? O nome deve ser: id ou id[] ou id[1]?Como eu pego os valores do Foreach para inseri-los no bd? Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 26, 2007 como já falei por select não, ois ele é proprio pra uma seleção apenas!!!!testa isto::::<?phperror_reporting("E_NOTICE");foreach ($_POST['time'] as $select=> $valor) {$select = $valor;echo "$valor<br>"; }conect bd$sql="INSERT INTO table (campos) VALUES ('$valor')"; ?><form name="form1" method="post" action="teste.php"> <input type="checkbox" name="time[]" value="santos"> <input type="checkbox" name="time[]" value="flamengo"> <input type="submit" name="Submit" value="Enviar"></form> Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 26, 2007 Eu testei com checkbox e deu certo. Depois mudei para select e funcionou tb. Obrigado cara, era disso que eu precisava.Mandante:<select name="time[]"size="1"> <option>santos</option> <option>flamengo</option></select>Visitante:<select name="time[]"size="1"> <option>santos</option> <option>flamengo</option></select> Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 26, 2007 eu pensei que você queria mandar todos os valores de um select apenas, realmete não dá mas, assim funfa belezaok precisando estamos aiabraço!!! Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 26, 2007 Só mais um probleminha:a linha echo "$valor<br>";} tá funcionando normalmente só que ñ to conseguindo inserir as variáveis $valor no bd.<?error_reporting("E_NOTICE");foreach ($_POST['time'] as $select=> $valor) {$select = $valor;echo "$valor<br>";}$conexao = mysql_pconnect("localhost","root","");mysql_select_db("placar",$conexao);$sql = mysql_query ("INSERT INTO table VALUES('$valor')");?><form name="form1" method="post" action="teste.php"><input type="checkbox" name="time[]" value="santos">santos<input type="checkbox" name="time[]" value="flamengo"> flamengo<input type="submit" name="Submit" value="Enviar"></form> Compartilhar este post Link para o post Compartilhar em outros sites
jonata 0 Denunciar post Postado Agosto 26, 2007 infelizmente a partir dai você tem de estudar!!!pois conexão, seleção, inserção, atualização exclusão de registros são coisas simples....bons estudos. Compartilhar este post Link para o post Compartilhar em outros sites
Tellys Castro 12 Denunciar post Postado Agosto 26, 2007 aqui $sql = mysql_query ("INSERT INTO table VALUES('$valor')"); ta faltando dados $sql = mysql_query ("INSERT INTO table 'campos','campos' VALUES('$valor')"); você tem q colocar assim na ordem , de modo que o primeiro campo seja o indexador do valor.. []s Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 26, 2007 ta faltando dados$sql = mysql_query ("INSERT INTO table 'campos','campos' VALUES('$valor')");você tem q colocar assim na ordem , de modo que o primeiro campo seja o indexador do valor..Eu não entendi porque você colocou dois campos sendo que a tabela tem apenas um.-- -- Estrutura da tabela `table`-- CREATE TABLE `table` ( `campos` varchar(32) default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;você quer que o código fique assim:<?error_reporting("E_NOTICE");foreach ($_POST['time'] as $select=> $valor) {$select = $valor;echo "$valor<br>";}$conexao = mysql_pconnect("localhost","root","");mysql_select_db("placar",$conexao);$sql = mysql_query ("INSERT INTO usuario 'campos','campos' VALUES('$valor')");?><form name="form1" method="post" action="p.php"><input type="checkbox" name="time[]" value="santos">santos<input type="checkbox" name="time[]" value="flamengo"> flamengo<input type="submit" name="Submit" value="Enviar"></form>No campo que você disse que é o indexador eu devo colocar um número, tipo:$i=0;$i++;indexador = [$i] Compartilhar este post Link para o post Compartilhar em outros sites
Nilson N 0 Denunciar post Postado Agosto 26, 2007 Eu refiz o código e ficou assim:<?error_reporting("E_NOTICE");foreach ($_POST[time] as $chaves => $valores) {$array_dados[$chaves] = $valores;$conexao = mysql_pconnect("localhost","root","");mysql_select_db("placar",$conexao);$sql = mysql_query ("INSERT INTO usuario VALUES('$array_dados[$chaves]')");}?><form name="form1" method="post" action="p.php"><input type="checkbox" name="time[]" value="santos">santos<input type="checkbox" name="time[]" value="flamengo"> flamengo<input type="submit" name="Submit" value="Enviar"></form>Finalmente consegui inserir os dados no bd.Obrigado jonata e supertelnet, agora é só adaptar o código para minhas necessidades. Compartilhar este post Link para o post Compartilhar em outros sites