Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta Não Está Funcionando


pdelphi

Pergunta

Eis meu HTML de consulta:

QUOTE

<html>

<head>

<title>INDICE ALFABÉTICO</title>

</head>

<body>

<h1>Indice Alfabético da Tec</h1>

<form action="results_tec.php" method="post">

Escolha o tipo:<br />

<select name="tipo">

<option value="Indice">Indice</option>

<option value="Descricao">Descrição</option>

<option value="Posicao">Posição</option>

</select>

<br />

Entre com a busca:<br />

<input name="termo" type="text"><br />

<input type="submit" value="Consultar">

</form>

</body>

</html>

Eis meus scripts de PHP, para o resultado da pesquisa.

QUOTE

<html>

<head><title>Livro da TEC - Rsultados</title></head>

<body>

<h1>Livro da TEC - Resultados</h1>

<?php

//Cria o nome da variável

$tipo=$_POSTS["tipo"];

$termo=$_POSTS["termo"];

$termo= trim($termo);

//if (!$tipo || !$termo)

if (($tipo == "") or ($termo == ""))

{

echo 'Voce não digitou nada na consulta. Digite algo válido!';

exit;

}

$tipo=addslashes($tipo);

$termo=addslashes($termo);

@ $db = mysql_pconect('127.0.0.1', 'paulo', '123');

if (!$db)

{

echo 'Erro!! Não foi possível conectar ao banco de dados!';

exit;

}

mysql_select_db('tec');

$query=select * from indice where ".$tipo." like '%".$termo."%'";

$result = mysql_query($query);

$num_results = mysql_num_rows($result);

echo '<p>Nº de Registros: '.$num_results.'</p>';

for ($i=0; $i <$num_results; $i++)

{

$row = mysql_fetch_array($result);

echo '<p><strong>'.($i+1).'.Indice: ';

echo htmlspecialchars(stripslashes($row['Indice]));

echo '</strong><br />Descrição: ';

echo stripslashes($row['Descricao']);

echo '<br />Posição: ';

echo stripslashes($row['Posicao']);

echo '</p>';

}

?>

</body>

</html>

Após a consulta~, ou seja, pressionar o Botão consultar no HTML, ven este resultado:

QUOTE

Voce não digitou nada na consulta. Digite algo válido!

É como se os valores do HTML, não estivesse sendo passados para o form results_tec.php. Agora, porque? Observe que no if, eu tentei de duas formas, como pode ser visto acima.

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Falta de atenção é normal e acontece com todo mundo. smile.gif

Com o tempo a gente vai começando a procurar primeiro esses erros quando alguma coisa dá errado e tal, mas alguma falta de atenção sempre pega a gente desprevinido... smile.gif

Tente colocar um valor fixo para o campo e o LIKE da sua query, só pra testar se as variáveis estão vindo com os valores certos... vê o que acontece... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Testa ai o codigo...

<html>
<head><title>Livro da TEC - Rsultados</title></head>
<body>
<h1>Livro da TEC - Resultados</h1>
<?php
//Cria o nome da variável
$tipo=$_POSTS["tipo"];
$termo=$_POSTS["termo"];
$termo= trim($termo);
//if (!$tipo || !$termo)
if (($tipo == "") or ($termo == ""))
{
echo 'Voce não digitou nada na consulta. Digite algo válido!';
exit;
}
$tipo=addslashes($tipo);
$termo=addslashes($termo);
@ $db = mysql_pconect('127.0.0.1', 'paulo', '123');
if (!$db)
{
echo "Erro!! Não foi possível conectar ao banco de dados!";
exit;
}
mysql_select_db('tec');
$query="select * from indice where ".$tipo." like '%".$termo."%'";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
echo "<p>Nº de Registros: $num_results</p>";
for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo "<p><strong>\"($i+1)\".Indice:";
echo "htmlspecialchars(stripslashes($row['Indice']))";
echo "</strong><br />Descrição:";
echo "stripslashes($row['Descricao'])";
echo "<br />Posição:";
echo "stripslashes($row['Posicao'])";
echo "</p>";
}
?>
</body>
</html> 

Tenta ai eu fiz umas modificações....

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz este teste em duas etapas: Antes e Depois da conexão com o Banco MySql.

print_r( $_POST); @ $db = mysql_pconect('127.0.0.1', 'paulo', '123');

if (!$db)

{

echo 'Erro!! Não foi possível conectar ao banco de dados!';

exit;

}

mysql_select_db('dados');               

A linha em vermelho na posição em que está, me retorna:

Array ( [tipo] => Descricao [termo] => ZARCÃO )

Se eu colocar após a conexão:

@ $db = mysql_pconect('127.0.0.1', 'paulo', '123');

Não me retorna mais nada, nada mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0

Descobri, era falta de um parênteses. Refiz o script e deu certo. Eis o certo abaixo.

<html>

<head><title>Livro da TEC - Rsultados</title></head>

  <body>

  <h1>Livro da TEC - Resultados</h1>

  <?php

    //Cria o nome da variável

$tipo=$_POST["tipo"];

$termo=$_POST["termo"];

$termo= trim($termo);

if (($tipo == "") or ($termo == ""))

{

  echo 'Voce não digitou nada na consulta. Digite algo válido!';

  exit;

}

$tipo=addslashes($tipo);

$termo=addslashes($termo);

$db = mysql_connect('127.0.0.1', 'paulo', '123') or die("Erro na conexão com o BD");;

mysql_select_db('tec');

$result = mysql_query("select * from indice where $tipo like '%$termo%'");

while($row = mysql_fetch_array($result)){

  echo '<p><strong>'.($i+1).'.Indice: ';

  echo htmlspecialchars(stripslashes($row['Indice]));

  echo '</strong><br />Descrição: ';

  echo stripslashes($row['Descricao']);

  echo '<br />Posição: ';

  echo stripslashes($row['Posicao']);

  echo '</p>';

}

?>

  </body>

</html

>
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...