Jump to content
Daniel Alves

Duas queries SQL na mesma pagina é possivel?!

Recommended Posts

Daniel Alves

Boa Noite caros amigos

É o seguinte, eu estou a desenvolver o contrato com a classe fpdf. E é primeira vez que programo em php  ;)

E preciso de obter resultados de 2 tabelas da BD... Assim sendo precisava fazer duas queries na mesma pagina...

Mas está a dar-me um erro.  :bored:

Aqui segue o código:

<?php

include ('.\lib\fpdf.php');

defined('FPDF_FONTPATH'); 

include("access_db.php");


if(!isset($_SESSION['username'])){

?>
<script>
    alert("Acesso não autorizado, faça login!");
    location = "login.php";
</script>
<?php
}

if(!isset($_GET['ct']))
{
?>

<script>
    alert("Acesso incorreto!");
    location = "contratos_list.php";
</script>

<?php

}

$query = "select * from contratos where id_contrato=" .$_GET['ct'];
//echo $query;
$res = mysql_query($query);
if(mysql_num_rows($res)!=1){
?>
<script>
    alert("Erro no nº de contrato");
    location = "contratos_list.php";
</script>

<?php
exit();
}

$dados = mysql_fetch_array($res);

// Vai buscar ao MYSQL os dados dos operarios
$query2 = "select * from operarios where id_operario=" .$dados['operario_id'];
echo $query;
$res2 = mysql_query($query2);
if(mysql_num_rows($res2)!=1){
?>
<script>
    alert("Erro no nº de operario");
    location = "contratos_list.php";
</script>

<?php
exit();
}

$dados2 = mysql_fetch_array($res2);


//Começando a usar a classe FPDF

  $pdf=new FPDF();
      $pdf->AddPage();
  //logotipo empresa
  $pdf->Image('.\images\interim_logo_JPG.jpg',20,20,-100);
  $pdf->SetFont('Arial','B',11);
  // Definir Margens
  $pdf->SetMargins(20, 5, 20);
  //cabeçalho 
  $pdf->SetXY(90,40);
  $pdf->Write(5,'CONTRATO Nº:');
  $pdf->SetX(120);
  $pdf->Write(5, $dados['id_contrato']);
  $pdf->SetXY(90,50);
  $pdf->Write(5,'COLABORADOR Nº:');
  $pdf->SetX(130);
  $pdf->Write(5, $dados['operario_id']);
  //Titulo Contrato
  $pdf->SetFont('Arial','B',10);
  $pdf->SetXY(50,80);
  $pdf->Write(5, 'CONTRATO INDIVUDAL DE TRABALHO A TERMO INCERTO');
      //Texto Contrato
  $pdf->SetFont('Arial','B',8);
  $pdf->SetXY(20,90);
  $pdf->Write(5, 'Entre:');
  
  $pdf->SetFont('Arial','',8);
  $pdf->SetXY(20,95);
  $pdf->Write(5, '1ª-INTERIM- lmsm, Empresa de Trabalho Temporário, LDA., com sede em Rua D. João I, nº 384, 4450-163 Matosinhos, com o capital social de 100.000,00 Euros, pessoa colectiva nº 509522580,contribuinte do regime geral da segurança social nº 25095225803, registada na Conservatória do Registo Comercial do Porto sob o nº 509522580,nesta acto representada por Luís Manuel Da Silva Moura, na qualidade de GERENTE, com poderes para este acto, adiante designada por PRIMEIRA OUTORGANTE ou INTERIM - lmsm, empresa de Trabalho Temporário, LDA.');
  
  $pdf->SetFont('Arial','B',8);
  $pdf->SetXY(20,120);
  $pdf->Write(5, 'E:');
  
  $pdf->SetFont('Arial','',8);
  $pdf->SetXY(20,90);
  
  $pdf->Write(5, $dados['nome_operario']);	 

  $pdf->Output();

      

?>

Está a dar este erro:

FPDF error: Some data has already been output, can't send PDF file

Eu já pesquisei na net mas NADA que eu entenda =/ Se eu colocar apenas uma query, já funciona.  :wallbash:

POR FAVOR AJUDEM-ME

Preciso mesmo terminar isto.  :D

Share this post


Link to post
Share on other sites
brunoais

Verifica o encode. certifica-te que não é UTF-8 com BOM. Se o for, altera para utf-8 sem BOM.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
mjamado

No código que colocaste tens um echo $query; descomentado, e é esse o output de que o erro se queixa.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
pmg

Tens um echo a mais no segundo query (e deveria ser echo $query2, mas dava o mesmo erro)

// Vai buscar ao MYSQL os dados dos operarios
$query2 = "select * from operarios where id_operario=" .$dados['operario_id'];
echo $query;                                                 // ESTE echo <=============
$res2 = mysql_query($query2);

Mas não precisas de 2 SQLs para o que queres. Um chega

$query = <<<QUERY
select contratos.id_contrato, contratos.operario_id, operarios.nome_operario
from contratos inner join operarios on operarios.id_operario=contratos.operario_id
where contratos.id_contrato={$_GET['ct']}
QUERY;


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
pirata11

Há aí algumas noances com problemas. Eu não sei como está definido o código no FPDF.PHP mas partido do pressuposto que essa libraria foi sacada da net e encontra-se programada de forma dinamica, experimente comentar a linha:

echo $query; -> isto é um output. E se ele diz que ja foi feito um output e não pode ser enviado para o PDF poderá ser disto. Dúvido muito mas...

outro problema. Porque é que está a utilizador 2 queries? Há alguma razão no código para que tenha que ser dessa forma? Poderá utilizar o seguinte:

$ct = $_GET['ct'];

$query = "select * from contratos, operarios where id_contrato= '$ct' AND id_operario=operario_id";

depois eliminar o query2 e o restante.

e depois poderá ter a ver com o PDF -> OUTPUT;

Share this post


Link to post
Share on other sites
Daniel Alves

Caros amigos MUITO OBRIGADO por toda a ajuda. :D

Já está a funcionar  ;)

Um grande abraço para todos e mais uma vez muito obrigado

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.