Erro em If em PHP

Fórum sobre outras linguagens de programação.

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Erro em If em PHP

Mensagem por cjp »

Alguém poderia me ajudar a descobrir o erro que contém esta função:

Código: Selecionar todos

<html>
 <head>
  <title>Consulta</title>
 </head>
 <body>
<?php
$txtArquivo = "COMPRAS.DBF";
$txtCampo = "PRODUTO";
$txtPesquisa = ($_POST["filtro3"]);

$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME'])."/meusarq/agenda/;";
$conn= odbc_connect($dsn,"","");
if(!$conn)
 { exit("conexao falhou: ".odbc_errormsg()); }
 if (ctype_digit($txtPesquisa)) {
  $sql="SELECT * FROM ".$txtArquivo." WHERE ".$txtCampo." = '".$txtPesquisa."'";
 } else {
  $sql="SELECT * FROM ".$txtArquivo." WHERE ".$txtCampo." LIKE '%".$txtPesquisa."%'";
 }
 $rs=odbc_exec($conn,$sql);
 if (!$rs)
 {exit("Error in SQL");}

 $i = 0; 
 $fieldCount = odbc_num_fields($rs); 
 echo '<table Border="1"><tr>';
 while ($i < $fieldCount) 
 { 
   $i++; 
   $fieldName = odbc_field_name($rs, $i); 
   echo "<th>$fieldName</th>"; 
 } 
 echo "</tr>";
 while (odbc_fetch_row($rs))
 {
  echo "<tr>";
  $i = 0;
  while ($i < $fieldCount)
  {
   $i++; 
   $fieldName = odbc_field_name($rs, $i); 
   $compname=odbc_result($rs,$fieldName);
   if ($i=1){
      echo "<td><a href='dproduto.php' target='_top'>".$compname."</a></td>";
   }else{
      echo "<td>$compname</td>";
   }
  }
  echo "</tr>";
 }
 echo "</table>";
 odbc_close($conn);
?>
 </body>
</html>
O problema, creio eu, deve estar no if da linha 43, pois, aparentemente, ele está em loop aí.

Veja como fica a tela dessa consulta:

Imagem

Imagem

Se eu tiro o if e o else, funciona perfeitamente, tanto deixando apenas:

Código: Selecionar todos

      {echo "<td><a href='dproduto.php' target='_top'>".$compname."</a></td>";}
Quanto deixando apenas:
{echo "<td>$compname</td>";}
Pelo que vi no manual de PHP, a sintaxe da função está correta.

O que estou fazendo errado?
Inacio de Carvalho Neto
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Erro em If em PHP

Mensagem por Maligno »

Note que o operador de comparação é "==", mas você está utilizando na linha 43 o operador de atribuição "=". Daí,...
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Erro em If em PHP

Mensagem por cjp »

Vacilei!!!

Funcionou agora. Muito obrigado.
Inacio de Carvalho Neto
Responder