Jump to content
Rogeriodc9

While - colocar valor oriundo de tabela

Recommended Posts

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

 

 

Share this post


Link to post
Share on other sites
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++;

Share this post


Link to post
Share on other sites

@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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By iSilvaMarcelo
      Boa tarde pessoal!
      Estou tendo uma dificuldade em repetição na minha tabela.
      Tentei usar foreach para exibir as informação do meu banco de dados porém ele só repetir o primeiro nome do meu banco, o objetivo é mostra todos eles em ordem. Mais não está indo.
      Testei usando while ($row_usuario = mysqli_fetch_assoc($resultado_usuario)){ }, ele funcionar porem os nomes ficam em varias tabelas separadas.
      Na imagem tem o código que usei.
       

    • By juniorerb21
      Olá! tenho uma rede social em php, e esta rede social te uma função para criar usuários falsos, mas eu preciso ocultar estes usuários nas recomendações de amigos, na página inicial.
    • By vitorrent
      Olá senhores, sou iniciante em php ainda, tentei mas nao sei como fazer.
      É o seguinte: estou fazendo uma tabela de salas onde aparece todas as salas enumeradas, quando clicko nessa sala ela abre com 3 botoe, um verde um amarelo e o outro vermelho.
      eu queria que quando clicar em um desses botoes ex: o verde, a cor da celula tambem mudasse para verde.
      ja tentei varias coisas mas não consigo!
      é um projeto pra faculdade ! Obrigado 
    • By Pitag346
      Boa noite pessoal...
      Eu não estou conseguindo fazer uma sub consulta... Se alguém puder clarear minhas ideias isso ser de muita ajuda.
      Fiz varias pesquisas e ainda não entendi como posso fazer o seguinte:
       
      Tenho 3 tabelas no banco de dados a tabela: Users, Ingress, Vendas.
      A tabela ingress seria a tabela onde armazeno meus produtos, contendo o preço do produto obviamente.
      E a tabela vendas eu armazeno o ID do produto vendido e o ID do user que vendeu... 
      Quero fazer uma sub consulta pra exibir dentro de um loop o valor total de produtos vendidos por cada usuario, porem eu não faço ideia como fazer, tentei a seguinte forma:
       
      $sq = " SELECT P.id, (SELECT COUNT(C.lote_id) FROM ingress C WHERE ticket_promote_id = P.id ) FROM users GROUP BY P.id "; $t2 = $conn->query($sq); Mas não estou entendendo como fazer...
      Se alguém puder só me dar um exemplo, eu só quero pegar o preço da outra tabela e exibir dentro de um loop em uma LISTA contendo, 
      USER, VENDAS, VALOR TOTAL VENDIDO... 
       
      Obrigado. att.
    • By jacksonihs
      Minha consulta está muito demorada, alguém tem alguma ideia de como melhorar, creio que o segundo select está piorando o processo, rsrsrs...
                      $consumption = $this->reading                 ->selectRaw('apartments.condominium_id,                  condominiums.name,                  apartments.number,                  apartments.block,                     readings.reading as reading,                      readings.reading/1000 as reading_m3,                      DATE_FORMAT(readings.readed_at, "%d/%m/%Y") as date,                     DATE_FORMAT(readings.readed_at, "%H:%i") as hour,                      IFNULL(readings.reading/1000 -                      (select rd.reading/1000 from readings rd where rd.id < readings.id and rd.meter_id = readings.meter_id                          order by rd.readed_at desc limit 0,1),0) as consumption,                      readings.readed_at as readed_at,                      readings.meter_leak,                      readings.meter_wire_cut,                      readings.meter_id,                      meters.meter_number,                      meters.transmitter_number,                      meter_types.type')                 ->join('meters', 'readings.meter_id', '=', 'meters.id')                 ->join('meter_types', 'meters.meter_type_id', 'meter_types.id')                 ->join('apartments', 'meters.apartment_id', '=', 'apartments.id')                 ->join('condominiums', 'condominiums.id', '=', 'apartments.condominium_id')                 ->where('condominiums.id', '=', $id)                 ->whereBetween('readings.readed_at', [$dateStart, $dateEnd])                 ->orderBy('meters.meter_number', 'asc')                 ->orderBy('readings.readed_at', 'asc')                 ->get();
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.