Jump to content
gersonab

Loop while não ocorre

Recommended Posts

Bom dia, tenho 2 tabelas editáveis em uma div, estas funcionam normalmente, o problema é que o loop não acontece , só carrega sobre 1 item, sendo que este eu posso ter mais itens.

 na página principal tenho:

<div class="carregadados"></div>

function fetch_data()  
{  
$.ajax({  
url:"../lista/finan.php",  
method:"POST",  
success:function(data){  
$('.carregadados').html(data);  
}  
});  
}  
fetch_data(); 

a página a ser carregada esta assim:

<?php
session_start();
require_once('config.php');
$output = '';  
$idc1=$_SESSION['idc'];
$sql01 = "SELECT * FROM porcent WHERE idfcli='$idc1'";
$result = mysqli_query($con, $sql01);
while($user41 = mysqli_fetch_array($result)){
	// primeiro while onde seleciono os itens da pessoa podendo ter vários
	$output .= '
	
	<div class="table-responsive mb-4 mt-4">
	Aqui vem os dados da pessoa
	';
	$id1= $user41["idproc"];
	$sqladv = "SELECT * FROM poradv WHERE procav='$id1'";
	$resulta = mysqli_query($con, $sqladv);  
	$output .= '
	<table class="table table-bordered table-hover table-striped" style="width:100%">
	<thead>
	<tr>
	</tr>
	</thead>
	<tbody>';
	if(mysqli_num_rows($resulta) > 0)  
	{ 
		while($usera = mysqli_fetch_array($resulta)){
			//segundo while onde tenho os dados de venda em uma tabela editavel
			$output .= '
			<tr>
			
			</tr>';  
		}  
		$output .= '  
		<tr>  
		// insiro linhas caso precise 
		</tr>  
		';  
	}  
	else  
	{  
		$output .= '<tr>  
		// caso não tenha nada inserido, posso fazer por aqui  
		</tr>  ';  
	}  
	$output .= '</tbody>
	</table>';
	$id2= $user41["idproc"];
	$sql = "SELECT * FROM parcelas WHERE procid='$id2' ORDER BY datapar, idpar ASC";  
	$result = mysqli_query($con, $sql);  
	$output .= '
	<table class="table table-bordered table-hover table-striped" style="width:100%">
	<thead>
	<tr>
	// tabela de pagamentos editavel
	</tr>
	</thead>
	<tbody>';
	if(mysqli_num_rows($result) > 0)  
	{  
		while($row = mysqli_fetch_array($result))  
		{  
			//terceiro while , tabela referente a pagamentos
			
			$output .= '

			<tr>
			// tabela pagamentos
			</tr>';  
		}  
		$output .= '  
		<tr>  
		// insiro linhas caso precise 
		</tr>  
		';  
	}  
	else  
	{  
		$output .= '<tr>  
		// caso não tenha nada inserido, posso fazer por aqui  
		</tr>  '; 
	}  
	$output .= '</tbody>
	</table>
	</div>
	
	'; 
}
echo $output;

?>

só esta carregando uma vez , tudo dentro da parte editável esta funcionando, porém no primeiro while só faz 1 loop, os demais estão funcionando perfeitamente.

desde já agradeço qualquer ajuda.

Share this post


Link to post
Share on other sites

O loop não ocorria pq no último while eu repeti o result do primeiro.

$result = mysqli_query($con, $sql);

foi só modificar que funcionou normalmente

Share this post


Link to post
Share on other sites

Depois de modificado o loop ocorre normalmente, mostrando os resultados normal, só que ao inserir novos itens, só grava como se fosse do primeiro, tipo :

<?php
session_start();
require_once('config.php');
$output = '';  
$idc1=$_SESSION['idc'];
$sql01 = "SELECT * FROM porcent WHERE idfcli='$idc1'";
$result = mysqli_query($con, $sql01);
while($user41 = mysqli_fetch_array($result)){
	// primeiro while onde seleciono os itens da pessoa podendo ter vários
	$output .= '
	<div class="table-responsive mb-4 mt-4">
	Aqui vem os dados da pessoa
	';
	$id1= $user41["idproc"];
	$sqladv = "SELECT * FROM poradv WHERE procav='$id1'";
	$resulta = mysqli_query($con, $sqladv);  
	$output .= '
	<table class="table table-bordered table-hover table-striped" style="width:100%">
	<thead>
	<tr>
	</tr>
	</thead>
	<tbody>';
	if(mysqli_num_rows($resulta) > 0)  
	{ 
		while($usera = mysqli_fetch_array($resulta)){
			//segundo while onde tenho os dados de venda em uma tabela editavel
			$output .= '
			<tr> tabela 1 </tr>';  
		}  
		$output .= '  
		<tr>  
        <td style="display:none;"></td>
		<td id="procav">'.$user41["idproc"].'</td>
		<td id="adv" contenteditable></td> 
		// insiro linhas caso precise +++++++++++++++++++++++++++++++++++++++++++++++++++
		</tr>  
		';  
	}  
	else  
	{  
		$output .= '<tr> 
        <td style="display:none;"></td>
		<td id="procav">'.$user41["idproc"].'</td>
		<td id="adv" contenteditable></td> 
		// caso não tenha nada inserido, posso fazer por aqui  ++++++++++++++++++++++++++++++++++++++++
		</tr>  ';  
	}  
	$output .= '</tbody>
	</table>';
	$id2= $user41["idproc"];
	$sql = "SELECT * FROM parcelas WHERE procid='$id2' ORDER BY datapar, idpar ASC";  
	$resultxx = mysqli_query($con, $sql);  
	$output .= '
	<table class="table table-bordered table-hover table-striped" style="width:100%">
	<thead>
	<tr>
	// tabela de pagamentos editavel
	</tr>
	</thead>
	<tbody>';
	if(mysqli_num_rows($resultxx) > 0)  
	{  
		while($row = mysqli_fetch_array($resultxx))  
		{  
			//terceiro while , tabela referente a pagamentos
			
			$output .= '

			<tr>
			// tabela pagamentos
			</tr>';  
		}  
		$output .= '  
		<tr>
        <td style="display:none;"></td>
		<td id="procid">'.$user41["idproc"].'</td>  
		<td id="valorp" contenteditable></td> 
		// insiro linhas caso precise ++++++++++++++++++++++++++++
		</tr>  
		';  
	}  
	else  
	{  
		$output .= '<tr>  
        <td style="display:none;"></td>
		<td id="procid">'.$user41["idproc"].'</td>  
		<td id="valorp" contenteditable></td>
		// caso não tenha nada inserido, posso fazer por aqui  +++++++++++++++++++++++++++++++++
		</tr>  '; 
	}  
	$output .= '</tbody>
	</table>
	</div>
	
	'; 
}
echo $output;

?>

onde eu coloquei o sinal de ++++ é onde estou tendo dificuldade , mostra o id conforme o loop , correto , porém ao inserir novos registros ele esta salvando com o id do primeiro loop.

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 Wallcrawler
      Olá pessoal tudo bem? Estou tentando fazer a cópia de uma imagem que está disponível na web e salvar em uma pasta no meu projeto. Essa imagem está sob protocolo SSL mas navegador consegue acessá-la normalmente. Mas o meu script php é bloqueado, e não entendo o porquê.
       
      Segue o código que estou usando:
      <?php //error_reporting(E_ALL ^ E_DEPRECATED); //ini_set('display_errors', 1); //die('Script travado!'); $start = microtime(true); set_time_limit(0); function save_image($inPath,$outPath) { //Download images from remote server $in = fopen($inPath, 'rb'); $out = fopen($outPath, 'wb'); while ($chunk = fread($in,8192)) { fwrite($out, $chunk, 8192); } fclose($in); fclose($out); } include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/classes/Rpi.class.php'); include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/functions.class.php'); $func = new FuncoesAuxiliares(); $rpi = new Rpi(); if(!isset($_GET['num_processo'])) { $rows = $rpi->Consulta('select num_processo, classe, especificacao from processos order by num_processo ASC limit 1'); } else { $rows = $rpi->Consulta("select num_processo, classe, especificacao from processos where num_processo > '" . $_GET['num_processo'] . "' order by num_processo ASC limit 1"); } $registros = 0; $arrayInsert = array(); $qtd_caracteres_total = 14; foreach ($rows as $rs) { //$rs['num_processo'] $zeros = ''; $qtd_char_processo = strlen($rs['num_processo']); //Fill zeros for($i=0; $i < ($qtd_caracteres_total - $qtd_char_processo); $i++) { $zeros .= '0'; } echo('BR5' . $zeros . $rs['num_processo'] . '<br>'); $url = 'http://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo']; //Aqui tento acessar a imagem e salvar na pasta correspondente save_image($url, __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); //copy('https://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo'], __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg'); $processo = $rs['num_processo']; $registros++; } $registros = number_format($registros, 0, ',', '.'); // Display Script End time $time_end = microtime(true); //dividing with 60 will give the execution time in minutes other wise seconds $execution_time = ($time_end - $start)/60; //execution time of the script echo '<b>Total Execution Time:</b> '. $execution_time .' Mins <hr><br><br>Registros: ' . $registros . '<br><br>'; echo("<a href='down_logo.php?num_processo=" . $processo ."' target='_self'>Próxima página</a><br><br>"); ?> O erro retornado é o seguinte:
       
      Warning: fopen(): SSL: Connection reset by peer in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fopen(http://www.tmdn.org/tmview/trademark/image/BR500000825642590): failed to open stream: HTTP request failed! in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10

      Warning: fread() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 12

      Warning: fclose() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 16
       
      Só que se você tentar acessar o endereço no browser, diretamente, a imagem aparece:
       
      https://www.tmdn.org/tmview/trademark/image/BR500000825642590 
       
      Onde posso estar errando? Obrigado pela atenção de todos.
    • By violin101
      Caros amigos,
       
      saudações...
       
      Estou escrevendo uma rotina de Carrinho de Compras e estou com problema na Library CART.
       
      Quando a Descrição do Produto ultrapassa 25 caracteres, o CART não é inserido.
       
      A library CART, estou chamando direto no AUTOLOAD.
       
      Como consigo resolver esse problema ?
       
      O Código para inserir está assim:
      <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Carrinho extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('site/carrinho_model'); } public function index() { $this->addCart(); } public function addCart() { //Recebe dados via POST $id_produto = $this->input->post("idPrds"); $descricao = $this->input->post("namPrds"); //Problema nesse Campo quando ultrapassa 25 caracteres - Não INSERE $quantidade = $this->input->post("qtds"); $preco = $this->input->post("vlrPrds"); $insert_dados = array( 'id' => $id_produto, 'name' => $descricao, 'price' => $preco, 'qty' => $quantidade ); $this->cart->insert($insert_dados); $this->load->view('site/estilo/header', $this->data); $this->load->view('site/carrinho'); } }  
       
      Grato,
       
      Cesar
       
       
       
       
    • By Bruno Ferreira da Silva
      Estou utilizando laravel 5.8.
      Meu problema é o seguinte, estou realizando o login com usuário e senha. O sistema entra na condição e debuga corretamente o usuário logado. e no mesmo momento que eu altero a url para ..../dashboard, ele redireciona como se estivesse deslogando. mas na segunda tentativa isso não acontece, ele realiza o login normalmente. Ai isso se repete sempre que troca de usuário. 
       
      O controller da dashboard chama apenas a view e mais nada. 
      public function authenticate(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { dd(Auth::user()); return redirect()->intended('dashboard'); } }  
    • By Sapinn
      Estou trazendo os dados do banco de dados e eles estão vindo com problema na acentuação
      uso o seguinte codigo no php
      <?php
      include_once ‘…/php/conexao.php’;
      header(‘Content-Type: text/html; charset=utf-8’);
      mysqli_query($conn,“SET NAMES ‘utf8’”);
      mysqli_query($conn,‘SET character_set_connection=utf8’);
      mysqli_query($conn,‘SET character_set_client=utf8’);
      mysqli_query($conn,‘SET character_set_results=utf8’);
      ?>
      E no html
      Mesmo assim as palavras com acento ficam com aquele erro desgraçado com a interrogação
      Alguem me ajuda ai
×

Important Information

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