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大虾们,指点指点咯。php,array,mysqli

解决方案 »

  1.   

    补充下,当  $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;
    }
      

  2.   

    还有个想法就是。竟然采集回来的是数组。
    如果能把字段 name 里的所有值都 声明回array,
    那就可以使用in_array来对比。如果有就插入,如果没就
    但name 声明回 array,这个是怎么做的?
      

  3.   

    $sql = "update biao set baodao='$b', time='$c' where name='$a'";
    $mysqli->query($sql);但你先要解决一个问题:当出现同名时如何处理
    即 name 列有两个 李小明 怎么做?
      

  4.   

    你的意思是不是 如果 数据库有这个字段 就更新  没有就插入啊<?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')");

    }
    ?>
      

  5.   


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

    }
    ?>
      

  6.   


    没有就继续跳继续跳。跳到有为止,李小明的这些数据时人工添加,baodao| time 这2个字段时作为修正与日常维护所用的。