dongnuo6310 2015-03-02 08:14
浏览 8
已采纳

无法获取重复的行PHP

My code is running for first time perfectly (if & else condition), next time if i execute this code, it is not executing if conditon.Dont know why. Can someone have a look at this. Its is checking the hash value in DB if found do nothing else insert row, but it is duplicating rows.

$data = array();
foreach($objJson["statuses"] as $status) {
  $data[] = array("created_at" => $status["created_at"],"text" => $status["text"],"user_img" => $status["user"]["profile_image_url"],"from_user" => $status["user"]["screen_name"],"id" => $status["id"],"media_url" => $status["entities"]["media"][0]["media_url_https"],"hash" => md5($status["created_at"].$status["text"].$status["user"]["screen_name"]));

  $check2 = "SELECT hash FROM tweets where hash=".md5($status["created_at"].$status["text"].$status["user"]["screen_name"])." ";
  $res=mysqli_query($con,$check2);

  if (mysqli_num_rows($res)==1) {

  }
  else
  {
    $check = "INSERT INTO tweets (`created_at`,`text`,`user_img`,`from_user`,`media_url`,`hash`) 
VALUES('".$status["created_at"]."','".$status["text"]."','".$status["user"]["profile_image_url"]."','".$status["user"]["screen_name"]."','".$status["entities"]["media"][0]["media_url_https"]."','".md5($status["created_at"].$status["text"].$status["user"]["screen_name"])."')";
mysqli_query($con,$check);
  }
}
  • 写回答

2条回答 默认 最新

  • duanpi2033 2015-03-02 08:58
    关注

    Try this code. I improved the formatting and saw that quotes were missing around the hash, a minor problem:

    foreach($objJson["statuses"] as $status) {
      $hash   = md5($status["created_at"].$status["text"].$status["user"]["screen_name"]));
      $check  = "SELECT hash FROM tweets WHERE hash = '$hash'";
      $result = mysqli_query($con,$check);
      if (mysqli_num_rows($result) == 0) {
        $insert = "INSERT INTO tweets (created_at,text,user_img,from_user,media_url,hash) 
                   VALUES('".$status["created_at"]."','".
                             $status["text"]."','".
                             $status["user"]["profile_image_url"]."','".
                             $status["user"]["screen_name"]."','".
                             $status["entities"]["media"][0]["media_url_https"]."','".
                             $hash."')";
        mysqli_query($con,$insert);
      }
    }
    

    I also improved the structure of your code a bit.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿