1个表
----------------------------
| id | name | baodao| time |
| 2 |李小明 | 小明 | 22:10|
| 1 |张三明 | 小三 | 17:10|
------------------------------
首先我去采集 信息
$url=http://www.abc.com;
$duurl=file_get_contents($url);
$name=/bs\[.*\]\s*\=\s*new\s*book\(\'[0-9]*\'\,\'(.*?)\'\,\'[0-9]*\'\,\'.*\'\,\'.*\'\,\'[0-9]*\'\,\'(.*?)\'\,\'[0-9]*\'\,\'.*\'\,\'[0-9]*\'\,\'.*\'\,\'(.*?)\'/iu;
preg_match_all($name,$duurl,$xiaoname);
$a=$xiaoname[1];
$b=$xiaoname[2];
$c=$xiaoname[3]; // 这3个就是采集回来的values
问。假如采集回来的第一个,后边还有nnnn个。我
$a = 李小明;
$b = 23:13;
$c = 荣荣;
求解,当获取1个 $a的值时,我想拿去和数据库的 字段 baodao 里的值对比。
如果有就修改time字段,如果没有就跳过。
大概就这个样子。新手很难了解。。php大虾们,指点指点咯。
回复讨论(解决方案) 补充下,
当 $a的值是 李小明,就拿这个李小明做为搜索数据库的条件。如果有就把 $c=蓉蓉 $b 2个值修改。
如果没有就跳过。
我做到找出结果集后不会了。
$mysqli=new mysqli(localhost,root,aa,aa);
$mysqli->query(set names utf8);
if(mysqli_connect_errno()){
echo 错误:.mysqli_connect_error();
exit;
}
还有个想法就是。
竟然采集回来的是数组。
如果能把字段 name 里的所有值都 声明回array,
那就可以使用in_array来对比。如果有就插入,如果没就。。。
但name 声明回 array,这个是怎么做的?
$sql = update biao set baodao='$b', time='$c' where name='$a';
$mysqli->query($sql);
但你先要解决一个问题:当出现同名时如何处理
即 name 列有两个 李小明 怎么做?
$sql = update biao set baodao='$b', time='$c' where name='$a';
$mysqli->query($sql);
但你先要解决一个问题:当出现同名时如何处理
即 name 列有两个 李小明 怎么做?
李小明不会出现2个以上的,只有0或者1次。
很好,那问题不就解决了?
你的意思是不是 如果 数据库有这个字段 就更新 没有就插入啊
query(select * from biao where baodao = '$a')){ //有结果就更新 $mysqli->query(update biao set baodao='$b', time='$c' where name='$a'); }else{ //没结果就插入 $mysqli->query(insert into biao ('$a','b','c')); }?>
query(select * from biao where baodao = '$a')){ //有结果就更新 $mysqli->query(update biao set baodao='$b', time='$c' where name='$a'); }else{ //没结果就插入 $mysqli->query(insert into biao ('$a','$b','$c')); }?>
query(select * from biao where baodao = '$a')){ //有结果就更新 $mysqli->query(update biao set baodao='$b', time='$c' where name='$a'); }else{ //没结果就插入 $mysqli->query(insert into biao ('$a','$b','$c')); }?>
没有就继续跳继续跳。跳到有为止,李小明的这些数据时人工添加,baodao| time 这2个字段时作为修正与日常维护所用的。