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

iswitch

Interpretar variável em Select de Mysql

4 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Atenção...

Não utilizes globais para global $encomenda_id;

Utiliza antes uma session!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora