<?php
error_reporting(0);
session_start();
include("conn/conn.php");
$couName=$_POST[couName];
$tech_id=$_POST[tech_id];
$teacherName=$_POST[techName];
$couNum=$_POST[couNum];
$intro=$_POST[intro];
$demand=$_POST[demand];
$sql=mysql_query("insert into thesis_topic(couName,tech_id,teacherName,couNum,intro,demand) values('$couName','$tech_id','$teacherName','$couNum','$intro','$demand')");//echo "insert into thesis_topic(couName,tech_id,teacherName,couNum,intro,demand) values('$couName','$tech_id','$teacherName','$couNum','$intro','$demand')";
//if($sql){
echo "<script language='javascript'>alert('题目上传成功!');history.back();</script>"; // }?>
以上代码还不完美,就是我这里需要将couName(题目)这个字段和数据库进行比较 ,如果有超过5个连续汉字相同,则上传失败。新小白只会增删改查,求大神指导下。这个将题目分成五个汉字的字符串以后使用like函数怎么整啊???
error_reporting(0);
session_start();
include("conn/conn.php");
$couName=$_POST[couName];
$tech_id=$_POST[tech_id];
$teacherName=$_POST[techName];
$couNum=$_POST[couNum];
$intro=$_POST[intro];
$demand=$_POST[demand];
$sql=mysql_query("insert into thesis_topic(couName,tech_id,teacherName,couNum,intro,demand) values('$couName','$tech_id','$teacherName','$couNum','$intro','$demand')");//echo "insert into thesis_topic(couName,tech_id,teacherName,couNum,intro,demand) values('$couName','$tech_id','$teacherName','$couNum','$intro','$demand')";
//if($sql){
echo "<script language='javascript'>alert('题目上传成功!');history.back();</script>"; // }?>
以上代码还不完美,就是我这里需要将couName(题目)这个字段和数据库进行比较 ,如果有超过5个连续汉字相同,则上传失败。新小白只会增删改查,求大神指导下。这个将题目分成五个汉字的字符串以后使用like函数怎么整啊???
那么连续五个字可以是:
将题目分成,五个汉字的,字符串
将,题目分成五,个汉字的字,符串
将题,目分成五个,汉字的字符,串
将题目,分成五个汉,字的字符串
将题目分,成五个汉字,的字符串就是在 php 中拆分,也不是简单的事情如果没有连续 5 个字的限制,php 中可以$a = '将题目分成五个汉字的字符串';
$b = '将题目分五个汉字字符串';
echo similar_text($a, $b, $r), ' 相似度 ', $r;
22 相似度 91.666666666667在数据库中也还是做不到的
//先转换编码
$encode = mb_detect_encoding($title, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
$title = mb_convert_encoding($title, 'UTF-8', $encode);
$encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
$str = mb_convert_encoding($str, 'UTF-8', $encode);$num = 5; //对比字数
$l = mb_strlen($str, 'utf-8'); //字符串长度
$result = false;
foreach($i = 0; $i < $l - $num + 1;$i++) {
$title_tmp = mb_substr($str, $i, $num, 'utf-8'); //截取一段标题
$re = mb_strpos($str, $title_tmp);
if($re) $result = true;
}记得加载mb_string模块
晕了 还有第11行
<?php
$str = "中国人是什么人呢";
$flag = 5;
$len = mb_strlen($str);// 循环获取5个一组的字符串
for($i=0;$i<$len-$flag+1; $i++){
$check_str = mb_substr($str, $i, $flag);
echo $check_str.'<br>'; // 比对数据库记录
$sqlstr = "select * from thesis_topic where couName like '%".$check_str."%'";
$query = mysql_query($sqlstr);
if(mysql_num_rows($query)>0){
echo '已存在';
break;
}
}// 不存在,继续执行插入动作
感觉应该使用php来比对。但需要把数据库中的文字先获取出来。如果记录多还是比较麻烦的。