Ir para conteúdo

POWERED BY:

Arquivado

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

vinicius.nyx

problemas com while e foreach

Recommended Posts

Ola pessoal, sou iniciante em PHP e estou desenvolvendo um sistema que lista em uma tabela itens de um determinado banco de dados, os itens da tabela possuem um checkbox e um textfield para selecionar o item e informar quantas unidades deseja, tudo isso esta dentro de um formulário que envia esses dados pelo método post para a pagina seguinte. Até essa parte ta perfeito, porem na segunda pagina ha um while pra listar na tabela os itens que foram selecionados pelo checkbox, mas junto a ele também tem um foreach que deveria listar o conteúdo do textfield junto a linha dos dados vindos do checkbox e ha algum erro que faz com que o item fique se repetindo varias vezes.
o código que recebe as informações do formulário é esse:

 

<?php
//</tr></table><br>';
echo '<table whidt="850" border="1">';
// Verifica se um item foi selecionado
if(isset($_POST["item"])) {
foreach($_POST["quant"] as $key2 => $quanter) {
// Faz um loop no Array de checkbox
foreach($_POST["item"] as $key => $value) {
$strSQL = "SELECT * FROM yamaha WHERE codigo='$value'";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)){
echo '<tr><td>' . $row['codigo'] . '</td><td>' . $row['descricao'] . '</td><td>' . $row['valor'] . '</td><td>';
echo $quanter . '</td>';
}
}
}}
else{
echo 'Nenhum item foi selecionado!';
}
echo '</tr></table>';
?>
Forma de pagamento: <br>
<?php
// Verifica a forma de pagamento
if(isset($_POST['pag'])) {
foreach($_POST["pag"] as $key => $paga) {
echo $paga . "<br />";
}
} else {
echo 'Forma de Pagamento não selecionada!';
}
?>
Se alguém puder me ajudar, e me informar qual a possível causa deste erro ou se ha outra forma de fazer isso ficarei muito grato...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja resolvi
Fica a dica pra quem tiver a mesma duvida:
Se estiver trabalhando com múltiplos array que proveem de um mesmo form e que deseja exibir de consecutiva NUNCA use dois foreach, utilize o índice dos vetores iguais e assim quando o foreach for percorrendo o seu vetor ele fara todo o trabalho sozinho
seria mais ou menos isso

$a = $_POST['n'];
$b = $_POST['m'];

 

foreach( $a as $key => $value){

echo $a . " e " . $b[$key];

}

O mais importante é lembrar como o php trata as variáveis e tomar cuidado ao colocar aspas em índices e variaveis.... u.ú

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.