Ir para conteúdo

POWERED BY:

Arquivado

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

Danilo Moreira da Costa

como dar um loop no Post

Recommended Posts

olá amigos,

fiz um formulário que exibi uma quantidade de ceps cadastrada no banco de dados, neste ceps eu posso fazer alteração em um formulário, mais nao sei como chamar todos exibidos pelo while no methodo post e tbm nao sei como dar um update, atualizar os ceps.

 

o Código do formulario é esse

<?php 
	$sql2="SELECT * FROM isc_shipping_zone_locations WHERE zoneid='$id'";
	$qry2= mysql_query($sql2);
	while($rsp= mysql_fetch_array($qry2)){
	?>
	<input type="text" name="cep" id="cep" value="<?php echo $rsp["locationvalue"];?>" /><br />
     <?php }?>

Quando inseri o codigo assim ele exibiu todos os ceps cadastrado, isso é o que queria e atráves do input faço a modificação para outros ceps, o problema é q nao consigo receber todos os ceps no $_POST , pq ele exibi apenas 1 e tbm nao sei como fazer o Update no mysql.

 

Alguem pode me ajudar.

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira a opção WHERE zoneid='$id', pois assim você está limitando a busca, caso o seu campo seja primary key, eles só vai retornar um valor mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o formulário esta ok.

minha dificuldade é receber no método post todos eles.

 

usei o foreach, olhe no codigo.

 $cep     = $_POST["campo"];
 
$resp = '';

foreach($cep as $k=>$v) {
	if($v!=0){
    $resp .= $k." = ".$v . "<br/> ";
}}
$resp = trim($resp, ', ');

Compartilhar este post


Link para o post
Compartilhar em outros sites
$sql2="SELECT * FROM isc_shipping_zone_locations WHERE zoneid='$id'";

zoneid significa q pertece a um grupo de ceps, por exemplo eu tenho 12000 ceps, mais quando o zoneid for 5 entao o grupo 5 terá exibido 7000 ceps, entendeu.

 

Todos os ceps no comando html estão funcionando perfeitamente, qndo pois o input exibe todos eles qndo ativo a função while, so que preciso enviar isso para uma outra pagina chamada editar_mysql.php

Nesta pagina irei receber todos os $_POST, o problema é $_POST["cep"] quero fazer ele funcionar recebendo todos os 7000 ceps um por um.

 

* Fiz uma correção no ultimo codigo que enviei $_POST["campo"] estava errado é $_POST["cep"]

 $cep     = $_POST["cep"];
 
$resp = '';

foreach($cep as $k=>$v) {
	if($v!=0){
    $resp .= $k." = ".$v . "<br/> ";
}}
$resp = trim($resp, ', ');

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho estou entendendo :)

você não está conseguindo enviar todos os valores para a página editar_mysql.php ?

e nessa página irá aparecer todos os cep's em cada input?

tipo os 7000 input text ? do grupo 5 //exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você está com a intenção de exibir os dados dentro do input

ex: ---- <input type="text" name="" value=" AQUI DENTRO " /> ---
digite seu código obviamente com a lógica correta dentro do value.

 

<input type="text" name="" value=" <?php echo "testando"?> " />

 

Ele exibira o texto (testando) dentro do value, sendo assim, se colocar a variavel do POST também exibirá, se quizer listar vários dados, use o while ou outra forma de loop que mais se enquadra ou que você tenha mais facilidade. DENTRO DO VALUE DO INPUT.

desculpe se não entendi sua dúvida

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que deu pra entender você tem q exibir os seus cep's não no input text. Use um select por exemplo ele cria uma caixa de seleção que seu while mostra todos eles, e na mesma logica que usou o loop no VALUE use tambem no select, option , podendo selecional-os um a um para alguma futura alteração e exibir todos de uma vez, da um pouco mais de trabalho mas é bom pra entender e aprendendo um pouco mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites
magnata_pvh

 

bom. consegui. O código abaixo recebe todos os ceps

$cep = $_POST["cep"];

$resp = '';

foreach($cep as $k=>$v) {
    if($v!=0){
$resp .= $k." = ".$v . "<br/> ";
}}
$resp = trim($resp, ', ');

agora preciso fazer um update de linha por linha no mysql, como faço isso?

os ceps estão salvos linha por linha, agora quero que ao receber os valores do $resp ele venha inserir linha por linha no mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

está um pouco de entender a sua lógica, mas pelo o que você me falou,

essa sua atualização de linha por linha, é manual? tipo, você atualiza um cep e depois se quiser atualizar outro cep vai la novamente no campo e atualizar novamente, ou essa atualização é para todos os cep's? apenas um update atualiza todos os cep's.

caso for isso, ja fiz uma aplicação igual a essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

são para todos.

por exemplo eu coloco uma cidade aonde tem 12000 ceps, e quero atualizar alguns ceps de la, atualizo eles todos e mando para o mysql todos eles.

essa parte de atualiza alguns ceps e depois atualizo todos, não entendi essa parte.

você atualiza todos ou alguns?

tipo se vc quiser atualizar somente um cep desses 12000. é assim? vc quer fazer umas atualizações sem alterar os outros e sim somente nesse que você deseja fazer a alteração? se for assim é fácil. caso for, me avise que mostro uma solução para esse seu problema.

até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites
name="cep"

isto fará com que somente o último input no formulário seja enviado.

tente assim:

name="cep[]"

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.