Maneju 0 Denunciar post Postado Fevereiro 24, 2010 Olá. Eu tenho uma tabela de produtos que contém um campo EAN (código de barras). Não há códigos duplicados, cada produto tem seu EAN único. Qdo faço uma consulta SQL na base de dados pelo campo EAN (no phpMyAdmim), o resultado da pesquisa está correto, me retorna apenas o registro relacionado ao EAN informado. Porém a mesma instrução SQL sendo executada pelo PHP, me retorno o registro correto e o subsequente a ele. Nunca tive problemas deste tipo, consultando no PHP pelo ID por exemplo, fica correto. Alguém tem alguma idéia do que possa ser? No phpMyAdmin SELECT * FROM `escriturare_produtos` WHERE EAN = '0x0x9x09' No PHP $sql = "SELECT * FROM `escriturare_produtos` WHERE `EAN` = {$id} "; Compartilhar este post Link para o post Compartilhar em outros sites
Max William 0 Denunciar post Postado Fevereiro 24, 2010 Correto seria: $sql = "SELECT * FROM escriturare_produtos WHERE EAN='$id' "; Erro esta nas aspas. Eu removi elas, e no seu where não use {$id} e sim variavel dentro de aspas simples Compartilhar este post Link para o post Compartilhar em outros sites
Maneju 0 Denunciar post Postado Fevereiro 24, 2010 Olá Max. Não é este o problema não. Eu já havia feito desta maneira que você mencionou e tb não funcionou. Algumas informações que percebi aqui usando: para alguns códigos de barras funcionam, entre eles aqueles que não possuem letras e aqueles que tem menos que 10 caracteres e são numéricos. O campo é um varchar(13). Compartilhar este post Link para o post Compartilhar em outros sites
Maneju 0 Denunciar post Postado Fevereiro 25, 2010 Olá. O problema acredito ser esta linha: $id = (int)$id; é que o mesmo INPUT que eu digito o ID do produto eu posso digitar o código de barras do mesmo. Então resolvi testar o tamanho da variável $id, se for menor que 7, a consulta seria pelo ID, caso contrário pelo EAN. Porém o strlen($id) sempre me retorna 0, veja abaixo: teste no localhost: http://localhost//produtosnotas_pesquisa.php?Codigo=6666666666 resultado do teste acima: 0 [{EAN: '6666666666', id: '13', Nome: 'Produto teste', Valor_Com: '44.00'}] O zero ali à esquerda é o strlen($id). Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 25, 2010 $id = (string)$id; echo strlen($id); Compartilhar este post Link para o post Compartilhar em outros sites
Maneju 0 Denunciar post Postado Fevereiro 25, 2010 Olá Dee. Continua mostrando zero mesmo com esta alteração. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 25, 2010 Féra Eu teste aqui: <?php $id = 13; echo strlen("$id"); $id = '13'; echo strlen($id); $id = 13; echo strlen("$id"); ?> Mostrou 2. Certo! Posta o que código que você montou. Compartilhar este post Link para o post Compartilhar em outros sites
Maneju 0 Denunciar post Postado Fevereiro 25, 2010 Certo. Tb testei da forma que você fez em uma página à parte e funciona. O problema é quando o conteúdo da variável $id é recebido pelo POST e não digitado dentro da própria página PHP. $id = $_POST['Codigo']; Meu código está assim: $id = $_POST['Codigo']; $id = (string)$id; echo strlen($id); Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 25, 2010 Entendi. Vamos tentar tirar o CAST e só colocar a variável na função strlen(). Assim: $id = $_POST['Codigo']; echo strlen("$id"); Mas agora que vi uma coisa.O Código está vindo por parâmetro no LINK não é ? Então você não pode receber como POST, mas sim como GET. $id = $_GET['Codigo']; echo strlen("$id"); POST é para informações vinda do formulário. Compartilhar este post Link para o post Compartilhar em outros sites
Maneju 0 Denunciar post Postado Fevereiro 25, 2010 Então você não pode receber como POST, mas sim como GET. Ah, tem razão. Agora zerou, ficou certinho. Valeu fera, obrigado. ps - só por curiosidade. Sempre testei no link com POST e sempre funcionou. Só tive problema agora com a STRLEN que sempre retornava zero, mas em outras ocasiões sempre funcionou. Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 25, 2010 Aee =) Boa! ps - só por curiosidade. Sempre testei no link com POST e sempre funcionou. Só tive problema agora com a STRLEN que sempre retornava zero, mas em outras ocasiões sempre funcionou. FUSSO! Impossível woieowiew! Que coisa! :) Compartilhar este post Link para o post Compartilhar em outros sites