Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

iswitch

Interpretar variável em Select de Mysql

Recommended Posts

iswitch

Para já uma explicação rápida do meu background...

Não pesco nada disto...minto,  vou pescando...mas à linha e pertinho da costa...

Estou a fazer um página em PHP+Mysql que está assim:

<?php if (isset($_COOKIE["encomenda_id"])) {
       global $encomenda_id; 
       global $HTTP_COOKIE_VARS;
        $encomenda_id = $HTTP_COOKIE_VARS["encomenda_id"];
print $encomenda_id;
} else {
Print "Ocorreu um erro... Por favor carregue no botão de regressar do seu browser. Se este erro persisitir, não poderá prosseguir. Contacte o administrador";
} 
?>
{embed="Angola/_header" my_site="mpsfarmaceutica"}

<?php 

$query = "SELECT exp_enc_produto_lista.encomenda_id, exp_enc_produto_lista.produto_id, exp_enc_produto_lista.quantidade, exp_weblog_data.field_id_5 FROM exp_enc_produto_lista LEFT JOIN exp_weblog_data ON exp_enc_produto_lista.produto_id=exp_weblog_data.field_id_4 WHERE exp_enc_produto_lista.encomenda_id =". $encomenda_id";  

$result = mysql_query ($query); 
}
?>
<br />
<p>Encomenda Número:  <?php print $encomenda_id;?>
<br />
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="tabela">
<tr class="cabecalho">
<td class="cabecalho" align="center">Código</td>
<td class="cabecalho" align="center">Nome</td>
<td class="cabecalho" align="center">Quantidade</td>
</tr>
<?php
for ($count = 0; $row = mysql_fetch_array($result); $count++) {

?>
<tr>

<td class="celula" align="center"><?php echo $row[1]; ?></td>
<td class="celula"><?php echo $row[3]; ?></td>
<td class="celula" align="center"><?php echo $row[2]; ?></td>

</tr>
<?php } ?>
</table>

A dúvida prende-se com o facto de que a query

$query = "SELECT exp_enc_produto_lista.encomenda_id, exp_enc_produto_lista.produto_id, exp_enc_produto_lista.quantidade, exp_weblog_data.field_id_5 FROM exp_enc_produto_lista LEFT JOIN exp_weblog_data ON exp_enc_produto_lista.produto_id=exp_weblog_data.field_id_4 WHERE exp_enc_produto_lista.encomenda_id =". $encomenda_id";  

Que está dependente da ultima expressão (where) assente numa variável "$encomenda_id"

ora quando faço print desta variável obtenho um valor : "1_11111111" por exemplo...ou seja ela está correctamente definida...

Quando corro a query com a variável a query sai em branco... quando substituo a variável por um dos seus valores, a query produz resultados.

Creio que terá algo a ver com a concatenação... mas já dei tantas voltas ao código que até já ponho em dúvida que Deus existe...

Alguém pode dar uma ajudinha assim visto de fora?

Share this post


Link to post
Share on other sites
iswitch

Já descobri onde está o erro... na definição da variável... (usa linguangem proprieta´ria do ExpressionEngine que não está a ser tratada antes do PHP... assim

em vez de $encomenda_id = 1_11111111

está a assumir o valor:

$encomenda_id = {member_id}_11111111

Share this post


Link to post
Share on other sites
Saco

Epa eu não percebo muito de PHP, mas o problema não é pura e simplesmente ter umas aspas a mais no fim da definição da query, imediatamente antes do ponto e vírgula? (tanto que o GeSHi reconhece o código quase todo como uma string...)

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

×

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.