vivi@ne 0 Denunciar post Postado Abril 28, 2011 Bom dia Estou tentando fazer um cadastro tipo orçamento, que grava no banco de dados e envia por email. Tudo funciona menos a quantidade. Na verdade só grava o primeiro registro. Se alguém puder ajudar, fico muito agradecida. Esse é o form que manda os dados if(!empty($_GET['cat'])){ $pEstado = $_GET["cat"]; //QUERY $sqln = " SELECT * FROM produtos where categoria = ".$pEstado." ORDER BY nome"; //EXECUTA A QUERY $sqln = mysql_query($sqln); while($row = mysql_fetch_assoc($sqln)): $codigos= explode(";",$row["codigo"]); $resultado = count($codigos); $miniatura = $row["imp1"]; $grande = $row["img1"]; $titulo = $row["nome"]; $id = $row["id"]; $codigos = $row["codigo"]; $medidas = $row["medida_bico"]; $tipo = $row["tipo"]; $medida_rosca = $row["medida_rosca"]; $medidass = $row["medidas"]; $medida_espiga = $row["medida_espiga"]; $tipo_rosca = $row["tipo_rosca"]; $medida_pino = $row["medida_pino"]; $medida_emenda = $row["medida_emenda"]; $comprimento = $row["comprimento"]; $cor = $row["cor"]; $outros = $row["outros"]; ?><? if(!empty($codigos)){?><form method="post" name="form1" action="envia.php?identifica=<?=$_GET['id']?>&ipcota=<?=$_SERVER[REMOTE_ADDR]?>" id="form3" target="_self"><table width="440" cellpadding="0" cellspacing="0"> <tr> <td height='131' colspan="3" align="right" valign="top"><img src="http://www.metalgarden.com.br/site_novo/img_adm/<?=$grande?>" alt="<?=$titulo?>" width="137" height="121" border="0" align="right" /></td> <td width="12" align="left" valign="top"> </td> <td align="left" valign="top"><table cellpadding="0" cellspacing="0" border="1px" bordercolor="#FFFFFF"> <tr> <td> <table cellpadding="0" cellspacing="0" border="1px" bordercolor="#FFFFFF"> <tr> <td width="20" align="left"></td> <td width="101" height="30" align="left" valign="middle"><span class="textos_agarden">Código</span></td> <? if(!empty($medidas)){ echo '<td width="180" height="30" align="left" valign="middle"><span class="textos_agarden">MEDIDA DO BICO</span></td>'; }?> <? if(!empty($medida_espiga)){ echo '<td width="100" height="30" align="left" valign="middle"><span class="textos_agarden">MEDIDA DA ESPIGA</span></td>'; }?> <? if(!empty($tipo)){ echo '<td width="180" height="30" align="left" valign="middle"><span class="textos_agarden">TIPOS</span></td>'; }?> <? if(!empty($medida_rosca)){ echo '<td width="100" height="30" align="left" valign="middle"><span class="textos_agarden">MEDIDA DA ROSCA</span></td>'; }?> <? if(!empty($medidass)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">MEDIDAS</span></td>'; }?> <? if(!empty($tipo_rosca)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">TIPO DE ROSCA</span></td>'; }?> <? if(!empty($medida_pino)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">MEDIDA DO PINO</span></td>'; }?> <? if(!empty($medida_emenda)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">MEDIDA DA EMENDA</span></td>'; }?> <? if(!empty($comprimento)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">COMPRIMENTO</span></td>'; }?> <? if(!empty($cor)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">CORES</span></td>'; }?> <? if(!empty($outros)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">OUTROS</span></td>'; }?> <td class="textos_agarden" >Qtde</td> </tr> <? $nome = $row["nome"]; $codigon = explode(";",$row["codigo"]); $medidas = explode(";",$medidas); $tipo = explode(";",$tipo); $medida_rosca = explode(";",$medida_rosca); $medidass = explode(";",$medidass); $medida_espiga = explode(";",$medida_espiga); $tipo_rosca = explode(";",$tipo_rosca); $medida_pino = explode(";",$medida_pino); $medida_emenda = explode(";",$medida_emenda); $comprimento = explode(";",$comprimento); $outros = explode(";",$outros); $cor = explode(";",$cor); for ($i=0;$i<$resultado;$i++){ ?> <tr> <td width="20" align="left"><input name="codigo[]" type="checkbox" value="<?=$codigon[$i]?>" /></td> <td width="101" height="29" align="left"><span class="textos_agarden"> <?=$codigon[$i]?> </span></td> <? if(!empty($medidas[$i])){ echo '<td align="left"><input type="hidden" name="medidas[]" value="'.$medidas[$i].'" /><span class="textos_agarden">'.$medidas[$i].'</span></td>'; }?> <? if(!empty($medida_espiga[$i])){ echo '<td align="left"><input type="hidden" name="medida_espiga[]" value="'.$medida_espiga[$i].'" /><span class="textos_agarden">'.$medida_espiga[$i].'</span></td>'; }?> <? if(!empty($tipo[$i])){ echo '<td align="left"><input type="hidden" name="tipo[]" value="'.$tipo[$i].'" /><span class="textos_agarden">'.$tipo[$i].'</span></td>'; }?> <? if(!empty($medida_rosca[$i])){ echo '<td align="left"><input type="hidden" name="medida_rosca[]" value="'.$medida_rosca[$i].'" /><span class="textos_agarden">'.$medida_rosca[$i].'</span></td>'; }?> <? if(!empty($medidass[$i])){ echo '<td align="left"><input type="hidden" name="medidass[]" value="'.$medidass[$i].'" /><span class="textos_agarden">'.$medidass[$i].'</span></td>'; }?> <? if(!empty($tipo_rosca[$i])){ echo '<td align="left"><input type="hidden" name="tipo_rosca[]" value="'.$tipo_rosca[$i].'" /><span class="textos_agarden">'.$tipo_rosca[$i].'</span></td>'; }?> <? if(!empty($medida_pino[$i])){ echo '<td align="left"><input type="hidden" name="medida_pino[]" value="'.$medida_pino[$i].'" /><span class="textos_agarden">'.$medida_pino[$i].'</span></td>'; }?> <? if(!empty($medida_emenda[$i])){ echo '<td align="left"><input type="hidden" name="medida_emenda[]" value="'.$medida_emenda[$i].'" /><span class="textos_agarden">'.$medida_emenda[$i].'</span></td>'; }?> <? if(!empty($comprimento[$i])){ echo '<td align="left"><input type="hidden" name="comprimento[]" value="'.$comprimento[$i].'" /><span class="textos_agarden">'.$comprimento[$i].'</span></td>'; }?> <? if(!empty($cor[$i])){ echo '<td align="left"><input type="hidden" name="cor[]" value="'.$cor[$i].'" /><span class="textos_agarden">'.$cor[$i].'</span></td>'; }?> <? if(!empty($outros[$i])){ echo '<td align="left"><input type="hidden" name="outros[]" value="'.$outros[$i].'" /><span class="textos_agarden">'.$outros[$i].'</span></td>'; }?> <td class="textos_agarden"><input name="qtd[]" type="text" id="qtd[]" size="3" /></td> </tr> <? }?> <tr> <td colspan="13" align="center"></td> </tr> </table> </td> </tr> </table></td> </tr> </table><br /><? } endwhile; } ?> <input type="submit" name="button2" id="button2" value="GRAVAR" style="background-color:#960a09" /></form> Aqui a parte que grava no banco de dados: if(!empty($_POST["codigo"])){ ?> <? if($_POST['qtd']) { extract($_POST); foreach(array($qtd) as $info0) foreach(array($codigo) as $info1) foreach(array($medidas) as $info2) foreach(array($tipo) as $info3) foreach(array($tipo_rosca) as $info4) foreach(array($cor) as $info5) foreach(array($comprimento) as $info6) foreach(array($medida_emenda) as $info7) foreach(array($medida_rosca) as $info8) foreach(array($medida_bico) as $info9) foreach(array($medida_espiga) as $info10) foreach(array($medida_pino) as $info11) foreach(array($outros) as $info12) for($i = 0; $i < count($info1); $i++) { $dadop = query("SELECT * FROM ".TB_PROD." where id = '".$_GET['identifica']."' "); $dadosp = $dadop->fetch_assoc(); $nome = $dadosp['nome']; $categoria = $dadosp['categoria']; $ip = $_SERVER[REMOTE_ADDR]; $query = mysql_query("INSERT INTO cotacao (categoria, nome, codigo, medida_bico, tipo, medida_rosca, medidas, medida_espiga, tipo_rosca, medida_pino, medida_emenda, comprimento, cor, outros, qtd, id) VALUES ('".$categoria."','".$nome."','".$info1[$i]."','".$info9[$i]."','".$info3[$i]."','".$info8[$i]."','".$info2[$i]."','".$info10[$i]."','".$info4[$i]."','".$info11[$i]."','".$info7[$i]."','".$info6[$i]."','".$info5[$i]."','".$info12[$i]."','".$info0[$i]."','".$ip."')")or print (mysql_error()); if ($query) { echo header("location:cotacao.php?ipcota=".$ip."&cat=".$_GET['cat'].""); } // Se houver algum erro ao inserir else { echo "Não foi possível inserir a mensagem no momento."; } }}} Compartilhar este post Link para o post Compartilhar em outros sites
Gui0 2 Denunciar post Postado Abril 28, 2011 Na parte do banco de dados, você não setou a variavel $medidass, setou apenas as $medidas. Compartilhar este post Link para o post Compartilhar em outros sites
vivi@ne 0 Denunciar post Postado Abril 28, 2011 Na parte do banco de dados, você não setou a variavel $medidass, setou apenas as $medidas. é verdade... corrigi esse detalhe, mas só grava a quantidade se o 1º item estiver marcado. Se eu marcar só o ultimo não grava a quantidade só os outros itens Compartilhar este post Link para o post Compartilhar em outros sites
vieira.rrafael 2 Denunciar post Postado Abril 28, 2011 Viviane, se eu recebesse seu código com a função de corrigi-lo, a 1ª coisa que eu faria é não usar echo para escrever HTML. Depois eu quebraria as linhas que estão muito longas. Por exemplo: <? if(!empty($medida_espiga[$i])){ echo '<td align="left"><input type="hidden" name="medida_espiga[]" value="'.$medida_espiga[$i].'" /><span class="textos_agarden">'.$medida_espiga[$i].'</span></td>'; }?> <? if(!empty($tipo[$i])){ echo '<td align="left"><input type="hidden" name="tipo[]" value="'.$tipo[$i].'" /><span class="textos_agarden">'.$tipo[$i].'</span></td>'; }?> <?php if(!empty($medida_espiga[$i])): ?> <td align="left"> <input type="hidden" name="medida_espiga[]" value="<?php echo $medida_espiga[$i]; ?> " /> <span class="textos_agarden"> <?php echo $medida_espiga[$i]; ?> </span> </td> <?php endif; if(!empty($tipo[$i])): ?> <td align="left"> <input type="hidden" name="tipo[]" value=" <?php echo $tipo[$i]; ?> " /> <span class="textos_agarden"> <?php echo $tipo[$i]; ?> </span> </td> <?php endif; ?> Errar é muito fácil e quando o código não ajuda fica difícil consertar. Compartilhar este post Link para o post Compartilhar em outros sites
vivi@ne 0 Denunciar post Postado Abril 28, 2011 Viviane, se eu recebesse seu código com a função de corrigi-lo, a 1ª coisa que eu faria é não usar echo para escrever HTML. Depois eu quebraria as linhas que estão muito longas. Por exemplo: <? if(!empty($medida_espiga[$i])){ echo '<td align="left"><input type="hidden" name="medida_espiga[]" value="'.$medida_espiga[$i].'" /><span class="textos_agarden">'.$medida_espiga[$i].'</span></td>'; }?> <? if(!empty($tipo[$i])){ echo '<td align="left"><input type="hidden" name="tipo[]" value="'.$tipo[$i].'" /><span class="textos_agarden">'.$tipo[$i].'</span></td>'; }?> <?php if(!empty($medida_espiga[$i])): ?> <td align="left"> <input type="hidden" name="medida_espiga[]" value="<?php echo $medida_espiga[$i]; ?> " /> <span class="textos_agarden"> <?php echo $medida_espiga[$i]; ?> </span> </td> <?php endif; if(!empty($tipo[$i])): ?> <td align="left"> <input type="hidden" name="tipo[]" value=" <?php echo $tipo[$i]; ?> " /> <span class="textos_agarden"> <?php echo $tipo[$i]; ?> </span> </td> <?php endif; ?> Errar é muito fácil e quando o código não ajuda fica difícil consertar. Agradeço pela dica, vou fazer a alteração, mas esta parte está funcionando... O que não está é a quantidade que não grava se o 1º item não estiver marcado Compartilhar este post Link para o post Compartilhar em outros sites
vieira.rrafael 2 Denunciar post Postado Abril 29, 2011 <?php <? if(!empty($outros)){ echo '<td width="130" height="30" align="left" valign="middle"><span class="textos_agarden">OUTROS</span></td>'; }?> <td class="textos_agarden" >Qtde</td> </tr> <? $nome = $row["nome"]; /* --> */$codigon = explode(";",$row["codigo"]); # é $codigon mesmo? $medidas = explode(";",$medidas); ?> Compartilhar este post Link para o post Compartilhar em outros sites
vivi@ne 0 Denunciar post Postado Abril 30, 2011 Pessoal, problema resolvido... if(!empty($_POST["qtd"])){ ?> <? if($_POST['qtd']) { extract($_POST); foreach(array($qtd) as $info0) foreach(array($codigo) as $info1) foreach(array($medidas) as $info2) foreach(array($medida_espiga) as $info3) foreach(array($tipo) as $info4) foreach(array($medida_rosca) as $info5) foreach(array($medidass) as $info6) foreach(array($tipo_rosca) as $info7) foreach(array($medida_pino) as $info8) foreach(array($medida_emenda) as $info9) foreach(array($comprimento) as $info10) foreach(array($cor) as $info11) foreach(array($outros) as $info12) foreach(array($nome) as $info13) for($i = 0; $i < count($info0); $i++) { $ip = $_SERVER[REMOTE_ADDR]; $quanto = $info0[$i]; if (!empty($quanto)){ $query = mysql_query("INSERT INTO cotacao (categoria, nome, codigo, medida_bico, tipo, medida_rosca, medidas, medida_espiga, tipo_rosca, medida_pino, medida_emenda, comprimento, cor, outros, qtd, id) VALUES ('".$_GET['cat']."','".$info13[$i]."','".$info1[$i]."','".$info2[$i]."','".$info4[$i]."','".$info5[$i]."','".$info6[$i]."','".$info3[$i]."','".$info7[$i]."','".$info8[$i]."','".$info9[$i]."','".$info10[$i]."','".$info11[$i]."','".$info12[$i]."','".$info0[$i]."','".$ip."')")or print (mysql_error()); if ($query) { echo header("location:cotacao.php?ipcota=".$ip."&cat=".$_GET['cat'].""); } // Se houver algum erro ao inserir else { echo "Não foi possível inserir a mensagem no momento."; } } }}} Compartilhar este post Link para o post Compartilhar em outros sites
vieira.rrafael 2 Denunciar post Postado Abril 30, 2011 <?php if(!empty($_POST["qtd"])){ ?> Era só trocar codigo por qtd? <_< É como eu digo: O diabo se esconde nos detalhes. Compartilhar este post Link para o post Compartilhar em outros sites