ippbx
2009/09/18上午12:01
我使用了您的search-keyword.php教程,并试图对其进行修改以允许在多个字段中进行搜索。我有一张列出以下内容的表格:
id,mentee1,senior1,junior1,mentee2,senior2,junior2,mentee3,senior3,junior3,mentee4,senior4,junior4,mentee5,senior5,junior5(以及一些其他不重要的)
除了"id"all是个人的名字,可以显示在所有字段中,并且可以显示多个字段,即J Smith可以是mentee1和junior3。
我想搜索J Smith,并在所有条目中找到他。
这是我错误地修改代码的方式:
代码:全选
<?php
include("connectdb.php");
$ todo = $ _ POST ['todo'];
if(isset($ todo)和$ todo =="search"){
$ search_text = $ _ POST ['search_text'];
$ type = $ _ POST ['type'];
$ search_text = ltrim($ search_text);
$ search_text = rtrim($ search_text);
if($type<>"any"){
$query="从测试中选择*,其中mentee1和senior1和junior1和mentee2和senior2和junior2和mentee3和senior3和junior3和mentee4和senior4和junior4和mentee5和senior5和junior5 ='$ search_text'";
}else{
$kt=split(" ",$ search_text); //将字符串分隔为单词数组
//现在让我们生成sql
while(list($ key,$ val)= each($ kt)){
if($val<>" " and strlen($val) > 0){$q .= "mentee1和senior1和junior1和mentee2和senior2和junior2和mentee3和senior3和junior3和mentee4和senior4和junior4和mentee5以及senior5和junior5,例如'%$ val%'或";}
}// end of while
$ q = substr($ q,0,(strLen($ q)-3));
//这将从字符串中删除最后一个或。
$query="从测试中选择* $ q";
} // if else基于类型值的结尾
echo $query;
echo "<br><br>";
$ nt = mysql_query($ query);
echo mysql_error();
while($ row = mysql_fetch_array($ nt)){
<? $display_block .="
<tr><td>$id</td><td>$mentee1</td><td align=center>$senior1</td><td align=center>$junior1</td><td>$mentee2</td><td>$senior2</td><td>$junior2</td><td>$mentee3</td><td>$senior3</td><td>$junior3</td><td>$mentee4</td><td>$senior4</td><td>$junior4</td><td>$mentee5</td><td>$senior5</td><td>$junior5</td></tr>
";
while($ row = mysql_fetch_assoc($ result)){
echo "$display_block";
echo '<td width="50"><a href="update.php?id ='。$ row ['id']。'">Update</a></td></tr></table>';
echo "<hr>";
}
//如果表单已提交则结束
}else{
echo "<表单方法=后动作=''><输入类型=隐藏名称=待办事项值=搜索>
<输入类型=文本名称= search_text><输入类型=提交值=搜索><br>
</form>
";
id,mentee1,senior1,junior1,mentee2,senior2,junior2,mentee3,senior3,junior3,mentee4,senior4,junior4,mentee5,senior5,junior5(以及一些其他不重要的)
除了"id"all是个人的名字,可以显示在所有字段中,并且可以显示多个字段,即J Smith可以是mentee1和junior3。
我想搜索J Smith,并在所有条目中找到他。
这是我错误地修改代码的方式:
代码:全选
<?php
include("connectdb.php");
$ todo = $ _ POST ['todo'];
if(isset($ todo)和$ todo =="search"){
$ search_text = $ _ POST ['search_text'];
$ type = $ _ POST ['type'];
$ search_text = ltrim($ search_text);
$ search_text = rtrim($ search_text);
if($type<>"any"){
$query="从测试中选择*,其中mentee1和senior1和junior1和mentee2和senior2和junior2和mentee3和senior3和junior3和mentee4和senior4和junior4和mentee5和senior5和junior5 ='$ search_text'";
}else{
$kt=split(" ",$ search_text); //将字符串分隔为单词数组
//现在让我们生成sql
while(list($ key,$ val)= each($ kt)){
if($val<>" " and strlen($val) > 0){$q .= "mentee1和senior1和junior1和mentee2和senior2和junior2和mentee3和senior3和junior3和mentee4和senior4和junior4和mentee5以及senior5和junior5,例如'%$ val%'或";}
}// end of while
$ q = substr($ q,0,(strLen($ q)-3));
//这将从字符串中删除最后一个或。
$query="从测试中选择* $ q";
} // if else基于类型值的结尾
echo $query;
echo "<br><br>";
$ nt = mysql_query($ query);
echo mysql_error();
while($ row = mysql_fetch_array($ nt)){
<? $display_block .="
<tr><td>$id</td><td>$mentee1</td><td align=center>$senior1</td><td align=center>$junior1</td><td>$mentee2</td><td>$senior2</td><td>$junior2</td><td>$mentee3</td><td>$senior3</td><td>$junior3</td><td>$mentee4</td><td>$senior4</td><td>$junior4</td><td>$mentee5</td><td>$senior5</td><td>$junior5</td></tr>
";
while($ row = mysql_fetch_assoc($ result)){
echo "$display_block";
echo '<td width="50"><a href="update.php?id ='。$ row ['id']。'">Update</a></td></tr></table>';
echo "<hr>";
}
//如果表单已提交则结束
}else{
echo "<表单方法=后动作=''><输入类型=隐藏名称=待办事项值=搜索>
<输入类型=文本名称= search_text><输入类型=提交值=搜索><br>
</form>
";