Heim >Backend-Entwicklung >PHP-Tutorial >新手求解关于结果集和数组的对比问题。

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

WBOY
WBOYOriginal
2016-06-23 14:08:221144Durchsuche

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次。

很好,那问题不就解决了?

你的意思是不是 如果 数据库有这个字段 就更新  没有就插入啊

<?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')");		}?>

<?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个字段时作为修正与日常维护所用的。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:取文件名Nächster Artikel:刚接触PHP,谁帮忙解决个问题