azeredo 0 Denunciar post Postado Outubro 26, 2006 Pessoal, minha dúvida é o seguinte... Tenho isso $sql = "select * from tabela where campo = var";$consulta_sql = ibase_query($conexao, $sql);$linha = ibase_fetch_object($consulta); mas quero verificar se essa sql existe... então as vezes faço: if ($consulta = true) {...} //e as vezesif ($linha = true){...} Falo as vezes, porque ora funciona com um ora com outro.... então minha dúvida é qual o correto (acho q nenhum.. eheh) ou qual a forma mais correta desta verificação? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
dvdddd 0 Denunciar post Postado Outubro 26, 2006 você quer saber se trouxe alguma resutado? use: $testa = $_POST['variavel_do_formulario']; $verifica= "SELECT nomeDaColunaNoBD FROM cliente WHERE campoDaTabela='".$testa."'"; $testador = mysql_query($verifica); $temp = mysql_fetch_assoc($testador); if($temp['variavel_que_veio_da_tabela']!=null) { // se for diferente de null faça tal coisa } echo { // faça isso } entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Outubro 26, 2006 é que no caso.. a sql acima é assim $sql_existenota = "select * from notas where matricula = $linha->MATRICULA and materia = $materia and avaliacao = $avaliacao and filial = $filial"; queria verificar se tem algum resultado sabe... tipo, achou algo na tabela com esse sql? para assim determinar o que irá fazer... Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 26, 2006 é que é diferente do mysql que existe a função mysql_num_row() para saber se trouxe resultados, mas preste atenção Executa uma consulta em um banco de dados InterBase. Se houver um erro na consulta, retorna FALSE. Se ela for bem sucedida e houver um conjunto de resultados (possivelmente vazio), como o retornado por uma consulta SELECT, retorna um identificador de resultado. Se a consulta for bem sucedida e não houver resultado, retorna TRUE. entao basta testar se retornou true para ver se teve sucesso , mas depois testar se é um identificador de resultados use get_resource_type http://br.php.net/manual/pt_BR/function.ge...source-type.php ou use is_object(): http://br.php.net/manual/pt_BR/function.is-object.php http://br.php.net/manual/pt_BR/function.var-dump.php Compartilhar este post Link para o post Compartilhar em outros sites
dvdddd 0 Denunciar post Postado Outubro 26, 2006 faça o que Fabio disse...verifique se retorna true..ou fica na opção de ser diferente de null Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Outubro 26, 2006 Fabyo.. ali "Executa uma consulta em um banco de dados InterBase....." o que tem antes deste texto?O que que executa uma consulta, é o ibase_query mesmo daí né?Se for, neste caso, verifico com if ($consulta = true) { Estou certo?Valeu Compartilhar este post Link para o post Compartilhar em outros sites
dvdddd 0 Denunciar post Postado Outubro 26, 2006 if ($consulta == true) { sao '==' ao inves de '=' se eu nao me engano! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 26, 2006 http://br2.php.net/manual/pt_BR/function.i...-free-query.php http://br2.php.net/ibase e o operador de comparador é "==" e identico "===" http://br2.php.net/manual/pt_BR/language.o....comparison.php $consulta_sql = ibase_query($conexao, $sql); $linha = ibase_fetch_object($consulta); if ($consulta) { } Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Outubro 26, 2006 vi no manual do php que tem o comando ibase_num_fieldsObtém o número de campos em um conjunto de resultadosEntão será que posso verificar se tem algum campo, para ver se encontrou algo na tabela....Desculpa pergunta, mas é que não estou podendo testar isso tudo agora, por não estar disponível o servidor para os testes...Valeu a todosEdit.: não tinha visto os posts acima... Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 26, 2006 ibase_num_fields é outra coisa, é quando você precisa saber o nome dos campos numa tabela Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Outubro 27, 2006 Bom dia a todos, Bom, o if($consulta) { funciona perfeitamente, mas neste código que fiz aqui... é como se ignorasse... $sql_existenota = "select * from notas where matricula = $linha->MATRICULA and materia = $materia and avaliacao = $avaliacao and filial = $filial"; $consulta_existe = ibase_query($conexao, $sql_existenota); if ($consulta_existe) { $linha_existe = ibase_fetch_object($consulta_existe); $sql_alteranota = "update notas set nota = $nota, falta = $falta where codigo = $linha_existe->CODIGO"; $altera_nota = ibase_query($conexao, $sql_alteranota); } else { $sql_lancar = "insert into notas (codigo, filial, matricula, materia, avaliacao, nota, falta, aulasbimestrais) values ($cod, $filial, $linha->MATRICULA, $materia, $avaliacao, '$nota', $falta, 30)"; $lançar = ibase_query($conexao, $sql_lancar); } Mesmo quando lanço uma nota em uma avaliação que ainda não tem, parace que ele ainda passa aqui $linha_existe = ibase_fetch_object($consulta_existe); $sql_alteranota = "update notas set nota = $nota, falta = $falta where codigo = $linha_existe->CODIGO"; $altera_nota = ibase_query($conexao, $sql_alteranota); Pois está dando esse erro Warning: ibase_query(): Dynamic SQL Error SQL error code = -104 Unexpected end of command in /var/www/apache2-default/www.maxximus.com.br/maxescola/teste/lancado.php on line 37 que é a linha $altera_nota = ibase_query($conexao, $sql_alteranota); Não consegui ver o porque está dando esse erro, pois com esse mesmo comando no IbExpert o sql faz corretamente no banco de dados. Todos os campos ali listados são integer Essa mensagem aparece tanto quando lança uma nota nota, quanto vou alterar uma nota já lançada... Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Outubro 27, 2006 você ta esquecendo de usar os apostrofos nos campos exemplo: update notas set nota = '$nota', falta = '$falta' Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Outubro 27, 2006 já tinha tentado assim, mas a mensagem é a mesma...Valeu Compartilhar este post Link para o post Compartilhar em outros sites
azeredo 0 Denunciar post Postado Outubro 27, 2006 sem abusar, mas já abusando....mais alguma ajuda?Valeu Compartilhar este post Link para o post Compartilhar em outros sites