Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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...
qual é o problema? aparece erro?
Não aparece erro algum, a unica coisa que aparece é o list/menu, e não aparece o resto dos campos que estão abaixo do list/menu...
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.
>
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">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
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">Ainda continuo a procura de uma solução. para meu problema, no post anterior tem o código da pagina que está sendo exibida pela explorer, e o código da consulta que estou fazendo...
Obrigado...
no topo do script, coloque isto:
ini_set('display_errors', 1);
error_reporting(E_ALL);
Se houver erros, assim será possível vê-los com certeza.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...
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.
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...
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.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()
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...
qual é o problema? aparece erro?