新手求解!!关于结果集和数组的对比问题。

林老伯咯 2013-04-30 10:48:35
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大虾们,指点指点咯。
...全文
154 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

<?php
	if($mysqli->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')");
	
	}
?>
  • 打赏
  • 举报
回复
你的意思是不是 如果 数据库有这个字段 就更新 没有就插入啊

<?php
	if($mysqli->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')");
	
	}
?>
xuzuning 2013-05-01
  • 打赏
  • 举报
回复
很好,那问题不就解决了?
林老伯咯 2013-05-01
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
$sql = "update biao set baodao='$b', time='$c' where name='$a'"; $mysqli->query($sql); 但你先要解决一个问题:当出现同名时如何处理 即 name 列有两个 李小明 怎么做?
李小明不会出现2个以上的,只有0或者1次。
xuzuning 2013-05-01
  • 打赏
  • 举报
回复
$sql = "update biao set baodao='$b', time='$c' where name='$a'"; $mysqli->query($sql); 但你先要解决一个问题:当出现同名时如何处理 即 name 列有两个 李小明 怎么做?
林老伯咯 2013-05-01
  • 打赏
  • 举报
回复
引用 7 楼 jsbba 的回复:

<?php
	if($mysqli->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个字段时作为修正与日常维护所用的。
林老伯咯 2013-04-30
  • 打赏
  • 举报
回复
还有个想法就是。 竟然采集回来的是数组。 如果能把字段 name 里的所有值都 声明回array, 那就可以使用in_array来对比。如果有就插入,如果没就。。。 但name 声明回 array,这个是怎么做的?
林老伯咯 2013-04-30
  • 打赏
  • 举报
回复
补充下, 当 $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; }

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧