Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adriano Programmer

[Resolvido] Php + Interbase

Recommended Posts

Bom dia, estou precisando da ajuda de vocês...

 

Tenho a seguinte consulta sql, que serve para mostrar os valores do banco em um list/menu...Mas não está funcionando...

 

CODE
<select name="instituesc" size="1" id="instituesc">

<?php

include ("conexao.php");

$consulta = ibase_query("SELECT CURINSENS FROM CURSOS order by CURINSENS ASC");

while ($dados = ibase_fetch_object($consulta)) {

echo("<option value='".$dados['CURINSENS']."'>".$dados['CURINSENS']."</option>");

}

?>

</select>

 

Desde já muito obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o código-fonte HTML gerado. Verifique se há erro no HTML ou se está vindo vazio.

 

Use ibase_errmsg() para ver se houve erro na consulta ou na conexão com o banco de dados.

Em que parte do código eu coloco ibase_errmsg()...

Estou começando aprender php e interbase...

Obrigado pela atenção...

 

CODE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Rh Sul - Cadastro de Candidato</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

 

<script>

function Mascara(tipo, campo, teclaPress) {

if (window.event)

{

var tecla = teclaPress.keyCode;

} else {

tecla = teclaPress.which;

}

 

var s = new String(campo.value);

// Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.

s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');

 

tam = s.length + 1;

 

if ( tecla != 9 && tecla != 8 ) {

switch (tipo)

{

case 'CPF' :

if (tam > 3 && tam < 7)

campo.value = s.substr(0,3) + '.' + s.substr(3, tam);

if (tam >= 7 && tam < 10)

campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);

if (tam >= 10 && tam < 12)

campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);

break;

 

case 'CNPJ' :

 

if (tam > 2 && tam < 6)

campo.value = s.substr(0,2) + '.' + s.substr(2, tam);

if (tam >= 6 && tam < 9)

campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,tam-5);

if (tam >= 9 && tam < 13)

campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,tam-8);

if (tam >= 13 && tam < 15)

campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,4)+ '-' + s.substr(12,tam-12);

break;

 

case 'TEL' :

if (tam > 2 && tam < 4)

campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);

if (tam >= 7 && tam < 11)

campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);

break;

 

case 'DATA' :

if (tam > 2 && tam < 4)

campo.value = s.substr(0,2) + '/' + s.substr(2, tam);

if (tam > 4 && tam < 11)

campo.value = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,tam-4);

break;

 

case 'CEP' :

if (tam > 5 && tam < 7)

campo.value = s.substr(0,5) + '-' + s.substr(5, tam);

break;

}

}

}

 

function digitos(event){

if (window.event) {

// IE

key = event.keyCode;

} else if ( event.which ) {

// netscape

key = event.which;

}

if ( key != 8 || key != 13 || key < 48 || key > 57 )

return ( ( ( key > 47 ) && ( key < 58 ) ) || ( key == 8 ) || ( key == 13 ) );

return true;

}

</script>

 

 

<style type="text/css">

body,td,th {

font-family: Tahoma, Arial;

font-size: 11px;

color: #4d4948;

}

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

</style>

 

<form action="cadastro_passo2.php?acao=enviar" method="post" name="frmcadcand" id="frmcadcand">

<table width="75%" border="0" align="center">

<tr>

<td height="21"><em><strong>»»» Dados Escolares «««</strong></em></td>

</tr>

<tr>

<td height="21"><div align="left"><em></em></div>

</td>

</tr>

</table>

<table width="75%" border="0" align="center">

<tr>

<td width="15%"><div align="right">Instituição</div> </td>

<td width="85%" rowspan="2"><select name="instituesc" size="1" id="instituesc">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar após ibase_connect() e ibase_query().

Na documentação há exemplos:

 

http://br2.php.net/manual/pt_BR/function.ibase-query.php

http://br2.php.net/manual/pt_BR/function.i...nnect.php#47903

Compartilhar este post


Link para o post
Compartilhar em outros sites

A consulta (abaixo) acho que está correta...

 

 

CODE
<select name="instituesc" size="1" id="instituesc">

<?php

$consulta = ibase_query("SELECT CURINSENS FROM CURSOS order by CURINSENS") or die (ibase_errmsg());

while ($dados = ibase_fetch_object($consulta)) {

echo("<option value='".$dados['CURINSENS']."'>".$dados['CURINSENS']."</option>");

}

?>

</select>

E a conexão com o banco de dados está correta, pois eu uso a mesma conexão para todas as páginas do site...

Eu acredito que o erro acontece antes, pois no código fonte exibido pela página termina antes de entrar na consulta...

 

 

Abaixo segue o código que termina antes de entrar na consulta...

 

 

 

CODE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Rh Sul - Cadastro de Candidato</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

 

<script>

function Mascara(tipo, campo, teclaPress) {

if (window.event)

{

var tecla = teclaPress.keyCode;

} else {

tecla = teclaPress.which;

}

 

var s = new String(campo.value);

// Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.

s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');

 

tam = s.length + 1;

 

if ( tecla != 9 && tecla != 8 ) {

switch (tipo)

{

case 'CPF' :

if (tam > 3 && tam < 7)

campo.value = s.substr(0,3) + '.' + s.substr(3, tam);

if (tam >= 7 && tam < 10)

campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);

if (tam >= 10 && tam < 12)

campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);

break;

 

case 'CNPJ' :

 

if (tam > 2 && tam < 6)

campo.value = s.substr(0,2) + '.' + s.substr(2, tam);

if (tam >= 6 && tam < 9)

campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,tam-5);

if (tam >= 9 && tam < 13)

campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,tam-8);

if (tam >= 13 && tam < 15)

campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,4)+ '-' + s.substr(12,tam-12);

break;

 

case 'TEL' :

if (tam > 2 && tam < 4)

campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);

if (tam >= 7 && tam < 11)

campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);

break;

 

case 'DATA' :

if (tam > 2 && tam < 4)

campo.value = s.substr(0,2) + '/' + s.substr(2, tam);

if (tam > 4 && tam < 11)

campo.value = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,tam-4);

break;

 

case 'CEP' :

if (tam > 5 && tam < 7)

campo.value = s.substr(0,5) + '-' + s.substr(5, tam);

break;

}

}

}

 

function digitos(event){

if (window.event) {

// IE

key = event.keyCode;

} else if ( event.which ) {

// netscape

key = event.which;

}

if ( key != 8 || key != 13 || key < 48 || key > 57 )

return ( ( ( key > 47 ) && ( key < 58 ) ) || ( key == 8 ) || ( key == 13 ) );

return true;

}

</script>

 

 

<style type="text/css">

body,td,th {

font-family: Tahoma, Arial;

font-size: 11px;

color: #4d4948;

}

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

</style>

 

<form action="cadastro_passo2.php?acao=enviar" method="post" name="frmcadcand" id="frmcadcand">

<table width="75%" border="0" align="center">

<tr>

<td height="21"><em><strong>»»» Dados Escolares «««</strong></em></td>

</tr>

<tr>

<td height="21"><div align="left"><em></em></div>

</td>

</tr>

</table>

<table width="75%" border="0" align="center">

<tr>

<td width="15%"><div align="right">Instituição</div> </td>

<td width="85%" rowspan="2"><select name="instituesc" size="1" id="instituesc">

Compartilhar este post


Link para o post
Compartilhar em outros sites
CODE
<select name="instituesc" id="instituesc">

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$consulta = ibase_query("SELECT CURINSENS FROM CURSOS order by CURINSENS");
while ($dados = ibase_fetch_object($consulta)) {
echo("<option value='".$dados['CURINSENS']."'>".$dados['CURINSENS']."</option>");
}
?>

</select>


Ficou assim, mas não aparece nada de diferente no explorer...fica aparecendo a mesma coisa...só aparece o campo list/menu sem nenhum valor...e o código do explorer termina antes de entrar na consulta...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para não estar aparecendo nem o "</select>", o script deve estar gerando um Fatal Error e parando a execução. O estranho é nào estar apresentando erro.

 

Tem certeza de que a extensão interbase está habilitada?

 

Você está testando isso em seu servidor local ou num servidor remoto? Se for servidos local, altere as linhas display_errors e error_reporting, no php.ini, da mesma forma como fizemos com ini_set() e error_reporting(). Reinicie o Apache e teste novamente. Depois disso, pode remover as duas linhas que inserimos no script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim beraldo a extensão interbase está abilitada, pois na mesma página eu insiro dados no banco, eu poderia te mandar toda página?

fiz o que voce me falou e alterei as linhas no php.ini...

mas continua sem aparecer nada...só aparece o campo list/menu e mais nada na página e sem os valores que eram pra carregar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não adianta postar todo o script. O problema é só nessa parte.

 

tente assim:

 

<select name="instituesc" id="instituesc">

<?php
$consulta = ibase_query("SELECT CURINSENS FROM CURSOS order by CURINSENS");

$i = 0;
while ($dados = ibase_fetch_object($consulta))
{
	echo "<option value='teste_".$i."'>".$i."</option>";
	echo "<option value='".$dados->CURINSENS."'>".$dados->CURINSENS."</option>";
	$i++;
}
?>

</select>

veja se aparecem as opções numéricas, pelo menos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que o problema no seu script é a maneira com que voce está usando a função ibase_fetch_object().

pois essa funcao cria um objeto, onde cada atributo é um campo da tabela e não um array como em mysql_fetch_array() ou mysql_fetch_assoc(), por exemplo.

 

ao inves de usar: $dados['nome_do_campo']

tente usar: $dados->nome_do_campo

 

documentação da ibase_fetch_object()

http://br.php.net/manual/pt_BR/function.ib...etch-object.php

 

ou entao tente usar as funcoes ibase_fetch_row() ou ibase_fetch_assoc()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Beraldo e Pedro Chaves...

Bah valeu mesmo Beraldo desde o início me ajudando...

 

Funcionou desta maneira...

 

CODE
<select name="instituesc" id="instituesc">

<?php

$consulta = ibase_query("SELECT CURINSENS FROM CURSOS order by CURINSENS");

while ($dados = ibase_fetch_object($consulta))

{

echo "<option value='".$dados->CURINSENS."'>".$dados->CURINSENS."</option>";

}

?>

</select>

 

Teria como alterar o nome do tópico?

E incluir "resolvido"...

Para outras pessoas acharem mais fácil...

 

Valeu mesmo pela força...

 

Abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.