我的查询出现了这个恼人的问题:
我有表格 tbl_profissao idtbl_profissao (INT(11),A.I。,UNSIGNED,NOT NULL), cbo (INT(6),UNSIGNED,ZERO FILL)和 profissao (VARCHAR(110))。
我将查询分成两个PHP页面 - profissao_busca.php 和 profissao_busca_input.php ,其中包含以下代码:
对于profissao_busca.php:
<?php include "header.php"; ?>
<body>
<h2>PESQUISA: PROFISSÃO (CBO) </h2>
<form id="form_profissao_busca" method="post" action="profissao_busca.php?go">
<p>Por favor, escreva o número CBO da profissão que quer encontrar:<br/><br/>
<input name="busca_cbo" type="text" id="busca_cbo" size="11" maxlength="11" />
<input name="submit" type="submit" value="PROCURAR" /></p>
</form>
<?php
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
if(preg_match("/^[ a-zA-Z]+/", $_POST['busca_cbo'])){
$name=$_POST['busca_cbo'];
$db=mysql_connect ("localhost", "root", "root") or die ('Não foi possível conectar-se ao Banco de Dados (erro No.): ' . mysql_error());
$mydb=mysql_select_db("grcc_db_pr");
$sql="SELECT idtbl_profissao, cbo, profissao FROM tbl_profissao WHERE profissao LIKE '%$name%' OR idtbl_profissao LIKE '%$name%' OR cbo LIKE '%$name%'";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
$Pessoa=$row['cbo'];
$ident=$row['idtbl_profissao'];
$prof=$row['profissao'];
echo "<ul>\n";
echo "<li> CBO requisitado: " . $Pessoa . "</li><li> Identificador: ". $ident . "</li><li>Ocupação:" . $prof . "</li><li>
<form id=\"form_profissao_busca\" method=\"post\" action=\"profissao_busca_input.php?go\">
<input name=\"button\" type=\"submit\" value=\"BUSCAR ESTE CBO\" />
<input name=\"busca_cbo\" type=\"hidden\" value=\"". $ident. "\" /></form></li>\n";
echo "</ul>";
}
}
else{
echo "<p>Este número não existe no Banco de Dados</p>";
}
}
}
?>
</body>
</html>
对于profissao_busca_input.php:
<?php include "header.php";
$nome_proc = $_POST['busca_cbo'];
// ================== Dados pessoais e documentos
$listagem = "SELECT idtbl_profissao, cbo, profissao FROM tbl_profissao WHERE profissao LIKE '%$name%' OR idtbl_profissao LIKE '%$name%' OR cbo LIKE '%$name%'";
$resultado = mysql_query($listagem);
$listagem = mysql_fetch_array($resultado);
print "<ul><li> CBO requisitado: $listagem[1] </li><li> Identificador: $listagem[0] </li><li>Ocupação: $listagem[2] </li></ul>";
将表格的一小部分作为:
idtbl_profissao,CBO,profissao
1,'010205','Oficial da aeronáutica'
2,'010210','Oficial do exército'
3,'010210','X5020'
4,'010215','Oficial da marinha'
5,'010215','X6020'
6,'010215','X6030'
问题在于,当我将任何属于“cbo”列的值设置为“Estenúmeroãoexisteno Banco de Dados”时(意味着数据库中不存在该值)。每当我从“profissao”列中输入单词或字母数字值时,它都可以正常工作。
现在我不知道发生了什么,或者我错过了什么,因为“cbo”是INT格式。
无论如何,请提前感谢您的关注。
尼科尔