Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia à todos.
Estou tendo problemas em colocar um valor, oriundo de uma tabela de dados, no lugar do valor de condição de testes, no comendo While. Abaixo uma parte da expressão, preciso colocar no lugar do valor que condiciona o contador, uma variavel contendo um valor de um registro de uma tabela de dados.
$conta=1;
while($conta<=$qpa){
A variável $qpa deve conter o valor de uma linha de uma tabela. Mas não consigo fazer com que a variável retorne o valor, ela entra na expressão do comando com o valor zerado.
Estou "pegando" da tabela acordos, a quantidade de parcelas ($qpa), que deve fazer um loop, gerando o parcelamento que será incluído em outra tabela.
Agradeço se puderem me ajudar.>
Em 10/10/2019 at 13:30, Massaki disse:
Se a variável vem zerada, é porque você não está pegando o valor da forma correta.
Mostre a(s) linha(s) onde você está definindo o valor dessa variável
>
Em 10/10/2019 at 13:30, Massaki disse:
Se a variável vem zerada, é porque você não está pegando o valor da forma correta.
Mostre a(s) linha(s) onde você está definindo o valor dessa variável
Olá Massaki, obrigado pelo interesse em me ajudar. Abaixo esta a parte do looping, e a primeira linha que destaquei em amarelo é a variavel que criei, buscando o valor da tabela acordo. O que preciso é pegar este valor para que o while possa contar a quantidade de parcelas e incluir na tabela de parcelas. $qpa=$row_acordo['qde_parcelas']; $conta=1; while($conta<=count($qpa)){ $insertSQL = sprintf("INSERT INTO parcobranca (id_oco, id_acordo, dt_vencparcela, perceparcela, vl_parcela, vl_hono) VALUES (%s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['id_oco'], "text"), GetSQLValueString($_POST['id_acordo'], "text"), GetSQLValueString($_POST['dt_vencparcela'], "date"), GetSQLValueString($_POST['perceparcela'], "text"), GetSQLValueString($_POST['vl_parcela'], "text"), GetSQLValueString($_POST['vl_hono'], "text")); mysql_select_db($database_icl17v2, $icl17v2); $Result1 = mysql_query($insertSQL, $icl17v2) or die(mysql_error()); $conta++;@Rogeriodc9
Man, vamos por partes.
Só para que fique claro, se você fez um SELECT na sua base de dados e obteve por exemplo 24 (que é a quantidade de parcela), ENTÃO aqui nesta variável "$row_acordo['qde_parcelas'];" você tem o INTEIRO 24 nela, você colocou no seu WHILE o comando COUNT, o que esta errado, pois realizando este valor o valor do COUNT é 1 pois só tem UM NÚMERO.
Então para que a sua lógica funcione, basta você comparar o $conta=1; diretamente com o valor retornado do acesso a base $row_acordo['qde_parcelas'];.
Você pode fazer isso de muitas maneiras.
WHILE ($conta <= $qpd) {
INSERT ...
}
ou
WHILE ($conta <= $row_acordo['qde_parcelas']) {
INSERT ...
}
Caso o problema não seja apenas este, antes do WHILE de um ECHO nas suas variáveis e nos mostre aqui para que seja possível analisar melhor o código.
Uma dica que dou é você usar o comando de INSERT da forma abaixo, vou deixar a lógica que imaginei para fazer o que você precisa.
<?php
$sql = "SELECT qde_parcelas FROM sua_tabela where sua_condição;";
$QtdParcela = mysql_query($sql);
$count = 1;
$parcela = $QtdParcela['qde_parcelas']
while($count <= $parcela) {
$insertSQL = "INSERT INTO parcobranca (id_oco, id_acordo, dt_vencparcela, perceparcela, vl_parcela, vl_hono)
VALUES ('".$_POST['id_oco']."', '".$_POST['id_acordo']."', '".$_POST['dt_vencparcela']."', '".$_POST['perceparcela']."', '".$_POST['vl_parcela']."', '".$_POST['vl_hono']."')",
$insert = mysql_query($insertSQL);
if (!$exec) {
echo "O comando sql não foi realizado com sucesso ($sql) retorno DB: " . mysql_error();
} else {
echo "Parcela ".$count." cadastrada com sucesso!";
}
$count++;
}
?>
Espero ter ajudado.
Att.
***Felipe Coutinho***
Se a variável vem zerada, é porque você não está pegando o valor da forma correta.
Mostre a(s) linha(s) onde você está definindo o valor dessa variável