Jump to content
lfcssp

while interrompendo a impressão da página

Recommended Posts

Boa tarde senhores! 

 

Estou voltando a estudar php depois de muitos anos. Estou montando uma lista que recolhe dados de usuários. Como alguns dados estão em tabelas diferentes (a de anexos, precisamente) eu montei uma query select para captar só aqueles anexos que tenham a mesma id de usuário (tabela que chamei de attach_user_id previamente já alimentada pelo formulário) e joguei numa variável para poder imprimir de dentro do loop que faz a consulta na tabela alunos. O script faz exatamente o que eu quero, ou melhor, quase. A lista é impressa, formatada, tudo ok MAS a página é cortada e o script não passa da última linha da tabela, ou seja, nem carrega o footer. Não consigo entender onde estou errando, e o script não retorna nenhum erro. 

 

Onde estou errando? 

 

<?php // o erro esta daqui em diante
while($user = mysqli_fetch_array($users) or die(mysqli_error($sql_con)))
{
	$user_id = $user['id'];
	$user_attachments = mysqli_query($sql_con,"SELECT attach_name,attach_path,attach_user_id FROM " . ATTACHMENTS_TABLE . " WHERE attach_user_id LIKE '$user_id'") or die(mysqli_error($sql_con));
	$docs = mysqli_fetch_array($user_attachments);
		?><tr>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['nome'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['dia'] . " de " . str_replace_assoc($mes,$user['mes']) . " de " . $user['ano']; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['curso'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['unidade'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['endereco'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['bairro'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['cep'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['numero'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['rg'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['cpf'] . "  " ; ?></font></td>
			<td align='center'><font face='Calibri' size='2' color='#888888'><a href='<?php echo $docs['attach_path'] . $docs['attach_name']; ?>'><img src='doc.png' alt='Ver documento anexado' style='width:16px;height:20px;'></a></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['email'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['telefone'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['celular'] . "  "; ?></font></td>
			<td><font face='Calibri' size='2' color='#888888'><?php echo $user['site'] . "  "; ?></font></td>
		</tr><!-- a pagina so e impressa ate exatamente neste ponto -->
<?php }	?>
</table>
<hr />
<script type="text/javascript">
function voltar()
{
         location.href="form.php"
}
function lista()
{
         location.href="lista.php"
}
</script>
<p align="center"><button onclick="lista()">Recarregar lista</button> <button onclick="voltar()">Novo cadastro</button></p>
<br/><br/>
<?php INCLUDE('./footer.php'); ?>

 

Share this post


Link to post
Share on other sites

 Saudações,

 

retirei a die(), fiz a checagem do loop com um if e isto resolveu o problema. Se eu soubesse que era só isso, não teria esquentado tanto a cabeça, já que planejava dar este "acabamento" depois que resolvesse o problema. 

 

Que isto seja útil algum dia para alguém que esqueça deste detalhe. Obrigado a todos que tenham tido a boa intenção de ler. 

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 Marcos PP
      Tenho uma tabela onde pego todos pedidos realizados no dia, porem mostro todos em uma tabela, ate ai tudo bem, mas o cliente precisa que seja agrupado por quem pediu, vou dar um exemplo,

      Na minha tabela tenho 

      ID_PEDIDO  |  ID_USER_PEDIDO |  PEDIDO
      1                   |   20                           |   524
      5                   |   52                           |   258
      2                   |   35                           |   525
      6                   |   52                           |   253
      3                   |   20                           |   658
      4                   |   20                           |   358

      No resultado me aparece conforme consulta e me mostra todos os pedidos em ordem de pedido
      SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC
       
      Se eu colocar um GROUP BY ID_USER_PEDIDO vai agrupar os pedidos de acordo com o usuário e mo mostrar apenas 1


      Eu preciso que seja mostrado todos eles porem agrupados na mesma linha da tabela
       
      <table id="datatable1" class="table display responsive "> <thead> <tr> <th class="">ID</th> <th class="">ID do usuario</th> <th class="">Pedido</th> </tr> </thead> <tbody> <?php $sql = "SELECT * FROM pedidos  ORDER BY ID_PEDIDO ASC"; $result = $conn->query($sql); while($row = $result->fetch_assoc()) { ?> <tr> <td><?php echo $row["ID_PEDIDO"];?></td> <td><?php echo $row["ID_USER_PEDIDO"];?></td> <td><?php echo $row["PEDIDO"];?></td> </tr> <?php } ?> </tbody> </table> E que seja exibido conforme esta imagem
       

    • By gersonab
      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.
    • By diagphp
      Olá amigos, sou muito novo no assunto de consultar APIs em PHP, então gostaria por gentileza de uma ajuda.
       
      Tem uma api externa que devemos consultar, mas está retornando o erro: PHP Fatal error: Uncaught Error: Class 'GuzzleHttp\Client' not found in /home1/

      A hospedagem é Hostgator.
       
       
      A consulta é simples:
       
      <?php
      $client = new \GuzzleHttp\Client();
      $response = $client->get("https://api.centraldofrete.com/v1/cargo-type", [
          'headers' => [
                  'Authorization' => '{token do cliente}',
              ],
      ]);
      $body = $response->getBody();
      print_r(json_decode((string) $body));
      ?>
       
      Alguém poderia me ajudar a fazer este tipo de consulta e obter o retorno da API? Tem algum arquivo a mais que tenho que colocar no servidor?
       
      Agradeço a  ajuda!
    • By Camilavip
      Oi, como consigo fazer uma página de erro ou redirecionamento ou aviso, caso alguém clique em um cadastro que já não existe ou não tenha?
      localhost/clientes/12/ricardo No exemplo acima eu clico no cliente com esse id 12 e abre os dados dele, mas se eu o excluir mas estiver com o link e colocar no navegador, ele abre a página, sem os dados dele, mas abre. Eu queria se caso não tivesse mais o id cadastrado, abrisse algo como nenhum cadastro encontrado ou existente.
    • By mamotinho
      Olá, gostaria de sabe como posso fazer uma contagem regressiva apartir de um registro em meu banco de dados eu tentei montar um código da seguinte forma:

       
      <? $DateGET = date('m/d/Y H:i A', strtotime($result->DateDiscount)); ?> <script> var valueDate = <?=$DateGET?>; var end = new Date(valueDate); var _second = 1000; var _minute = _second * 60; var _hour = _minute * 60; var _day = _hour * 24; var timer; function showRemaining() { var now = new Date(); var distance = end - now; if (distance < 0) { clearInterval(timer); document.getElementById("countdown").innerHTML = "EXPIRED!"; return; } var days = Math.floor(distance / _day); var hours = Math.floor((distance % _day) / _hour); var minutes = Math.floor((distance % _hour) / _minute); var seconds = Math.floor((distance % _minute) / _second); document.getElementById("countdown").innerHTML = "<span class='n_date day' id='days'>" + days + "</span><span class='date'>일</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time hour' id='hrs'>" + hours + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time minute' id='minus'>" + minutes + "</span>"; document.getElementById("countdown").innerHTML += "<span class='n_time second' id='secs'>" + seconds + "</span>"; } timer = setInterval(showRemaining, 1000); </script> Mais infelizmente não passou a data registrada no banco de dados, alguém teria ideia de como posso ta fazendo.
×

Important Information

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