Ir para conteúdo

POWERED BY:

Arquivado

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

Juninho De Luca_54619

[Resolvido] $_GET + $i no PHP/MySQL

Recommended Posts

Pessoal,

Estou com um problema chato demais.

Estou tentando desenvolver um sisteminha interno bem simples.

Basicamente um formzão que reúne uma série de variáveis para impressão e

salva um DB temporário que eu reseto regularmente.

 

A questão é o seguinte... temos uma linha de produtos... com um produto-pai... normalmente o principal... e alguns produtos filhos (até 30). E temos 10 compradores com números determinados de produtos (10, 20, etc).

 

Então estou tentando fazer o seguinte:

 

$con = mysql_connect('xxx.xxx.x.x','xxxxxx','xxxxxx');
if (!$con) {
 die('Could not connect: ' . mysql_error());
 }
mysql_select_db('encarte12pg', $con);

if ($comprador == '1'){
for ($i=1; $i<=21; $i++) {
$result = mysql_query("SELECT * FROM $comprador WHERE $comprador.ID='$i'") or die(mysql_error());
$row = mysql_fetch_array($result);
echo"<tr>";
echo"<td><input  class=\"idText\" type=\"text\"    name=\"ID_".$i."\"                 size=\"2\"  value=\"".$i."\"                     disabled                                                                           /></td>";
echo"<td><input  class=\"warn\"   type=\"text\"    name=\"COD_PAI_".$i."\"            size=\"5\"  value=\"".$row['COD_PAI']."\"    maxlength=\"7\"                                                                           /></td>";
echo"<td><button class=\"button\" type=\"button\"  name=\"INSERE_COD_FILHO\"          onClick=\"window.open('insere_cod_filho.php?comprador=".$comprador."&cod_pai=".$i."','','width=300,height=500,scrollbars=yes')\" >INSERIR</button></td>";
echo"<td><input  class=\"warn\"   type=\"text\"    name=\"DESCRICAO_".$i."\"          size=\"30\" value=\"".$row['DESCRICAO']."\"                                                                                            /></td>";
echo"<td><input  class=\"text\"   type=\"text\"    name=\"PRECO_CUSTO_".$i."\"        size=\"5\"  value=\"".$row['PRECO_CUSTO']."\"                                                                                          /></td>";
echo"<td><input  class=\"text\"   type=\"text\"    name=\"PRECO_VENDA_".$i."\"        size=\"5\"  value=\"".$row['PRECO_VENDA']."\"                                                                                          /></td>";
echo"<td><input  class=\"text\"   type=\"text\"    name=\"MARGEM_".$i."\"             size=\"3\"  value=\"".$row['MARGEM']."\"                                                                                               /></td>";
echo"<td><input  class=\"warn\"   type=\"text\"    name=\"PRECO_PROMOCIONAL_".$i."\"  size=\"5\"  value=\"".$row['PRECO_PROMOCIONAL']."\"                                                                                    /></td>";
echo"<td><input  class=\"warn\"   type=\"text\"    name=\"QTD_".$i."\"                size=\"4\"  value=\"".$row['QTD']."\"                                                                                                  /></td>";
echo"<td><input  class=\"text\"   type=\"text\"    name=\"OBS_".$i."\"                size=\"10\" value=\"".$row['OBS']."\"                                                                                                  /></td>";
echo"</tr>";
  }
}

 

O $i <= 21 é o número de produtos desse comprador 1.

 

Na terceira linha do form, existe um insere_cod_filho.php que lança a variável $comprador e a $i (adicionada a cada loop)

 

No arquivo insere_cod_filho.php eu tenho o seguinte:

 

$comprador = $_GET['comprador'];
$cod_pai   = $_GET['cod_pai'];

echo"<form name=\"InsereCodFilho\" method=\"post\" action=\"insere_cod_filho_go.php?comprador=$comprador&cod_pai=$cod_pai\">";
echo"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">";
echo"<tr>";
echo"<td class=\"font\" align=\"center\">ID<br /></td>";
echo"<td class=\"font\" align=\"center\">COD-FILHO<br /></td>";
echo"<td class=\"font\" align=\"center\">VALOR<br /></td>";
echo"</tr>";

$con = mysql_connect('xxx.xxx.x.x','xxxxxxx','xxxxxxx');
mysql_select_db('encarte12pg', $con);
$result = mysql_query("SELECT COD_FILHO, VALOR_DIFERENCIADO FROM cod_filho WHERE cod_filho.COMPRADOR='$comprador' AND cod_filho.COD_PAI='$cod_pai' AND cod_filho.ID='1'") or die(mysql_error());
$row = mysql_fetch_array($result);
echo"<tr>";
echo"<td><input class=\"idText\" type=\"text\"  name=\"ID\"  size=\"2\"                       value=\"1\"    disabled                     /></td>";
echo"<td><input class=\"text\"   type=\"text\"  name=\"COD_FILHO_1\"           size=\"12\" value=\"".$row['COD_FILHO']."\" maxlength=\"7\" /></td>";
echo"<td><input class=\"text\"   type=\"text\"  name=\"VALOR_DIFERENCIADO_1\"  size=\"5\"  value=\"".$row['VALOR_DIFERENCIADO']."\"        /></td>";
echo"</tr>";
mysql_close();

 

E no insere_cod_filho_go.php eu tenho:

 

$comprador = $_GET['comprador'];
$cod_pai   = $_GET['cod_pai'];

$COD_FILHO_1           = $_POST['COD_FILHO_1']; 
$VALOR_DIFERENCIADO_1  = $_POST['VALOR_DIFERENCIADO_1']; 
echo"<html>";
echo"<head>";
echo"<title>INSERIR CÓDIGO FILHO</title>";
echo"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />";
echo"<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\">";
echo"<body bgcolor=\"#ff8800\">";
echo"<table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">";
echo"<tr>";
echo"<td width=\"100%\" height=\"100%\" align=\"center\" valign=\"middle\"><font color=\"#ffffff\" face=\"verdana\" size=\"2\">";
echo"<center><img src=\"img/logo.gif\" alt=\"Giassi Supermercados\" width=\"275px\" height=\"65px\" /></center><br /><br />";

$con = mysql_connect('xxx.xxx.x.x9','xxxxxxxx','xxxxxxxx');
mysql_select_db('encarte12pg', $con);
mysql_query("INSERT INTO cod_filho VALUES ('1','$comprador','$cod_pai','$COD_FILHO_1','$VALOR_DIFERENCIADO_1')");
mysql_close();
etc etc etc

 

O problema é que... o php puxa o $_GET[] do comprador.php para o insere_cod_filho.php mas não envia do insere_cod_filho.php para o insere_cod_filho_go.php e, portanto, não grava no DB =/

Estou tentando fazer isso na mão... sem "chupagem"... portanto tenham dó hehehe

Não tenho exatamente certeza se o problema está no $_GET. Se alguém notar alguma falha no código, fique a vontade.

Valeu!

 

Já tentei usar o $HTTP_GET_VARS[] mas deu na mesma =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta dar um echo nos GET pra ver se está recuperando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique o sintaxe nessa linha

 

$result = mysql_query("SELECT * FROM $comprador WHERE $comprador.ID='$i'") or die(mysql_error());

 

Você está usando uma variável $comprador para ser o nome da tabela. Você tem no seu banco a tabela 1, 2, 3, etc.. ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Obrigado pela resposta rápida jovens.

 

1) Acabei de executar o echo do get... ele puxou corretamente no insere_cod_filho_go.php =P Isso significa que o problema está na query, certo?

 

2) O nome da tabela de codigos filhos é cod_filho, surf... aquela tabela $comprador é outra, específica para os outros campos. No caso, cada comprador tem sua tabela. E existe uma tabela cod_filho que serve todos eles.

 

Valeu!

Se achar que deve mover o tópico e/ou renomear, fiquem a vontade (já que, aparentemente, o problema não é no $_GET)

 

Galera... só para lembrar que o problema ainda não foi resolvido... apenas descobrimos que o problema não está no $_GET. Se alguém puder ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos debugar as querys.

Após todos mysql_query() adcione

mysql_query("") or die (mysql_error());

 

E para testarmos mais uma vez coloque essa sql em uma variável.

$sql = "SELECT * FROM tabela lalalala";
echo $sql;//vamos ver se está indo certo
mysql_query($sql) or die (mysql_error());

 

Isso é uma boa prática, recomendo você fazer sempre isso pra ver se está realmente como você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Hiago.

Identifiquei o problema na primeira =]

Mas agora gerou uma nova situação...

só vou poder usar o INSERT INTO na primeira vez...

depois disso, se o comprador quiser alterar o código,

só via UPDATE, certo?

 

vou tentar com if/else para manter tudo no mesmo arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, primeiro você os dados do caboco depois atualiza(update).

 

Lembrando que para dar o update você terá que selecionar os dados do cliente via id e depois atualizar nesse mesmo id.

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.