2013-07-14 17 views
0

我在写一个脚本来将产品从csv文件上传到我的网站。我一直有一个问题,当我的if($result) echo "hi";确实存在回显结果时,但如果我把if(!result)if(empty($result)if(!isset(result))将无法​​回显时没有结果...在我的productlist.txt代码列表中有3产品代码,其中2个在数据库中,当我有if($ result)时,它会回显2'hi',但如果我有if(!result)什么都没有回声,那么它应该回显1 hi。PHP脚本不能识别缺失的变量

while($data = fgetcsv($handle)) { 

    //Gets products to be added from txt file. 
    $codes = explode("\n", file_get_contents("productlist.txt")); 

    foreach($codes as $code) { 

     if($data[3] == $code) { 

      $name = $data[2]; 
      $model = $data[3]; 
      $description = strip_tags($data[6]); 
      echo $price = round($data[7] + 20 + (0.05 * $data[7])) - 0.05; echo "</br>"; 
      $image = "data/W_Sexy_Lingerie_Series_Lingerie-Supplies/" . $model . ".jpg"; 

      //Check to see if product already exists 
      $query = "SELECT `product_id` FROM `oc_product` WHERE `model`='$model'"; 
      $result = $con->query($query); 

      if(empty($result)) echo "hi"; 

      break; 

      //Insert product information 
      $query = "INSERT INTO `oc_product` (`model`, `quantity`, `image`, `price`, `status`) VALUES 
      ('$model', '5', '$image', '$price', 1)"; 

      if (!$con->query($query)) { 
       echo $con->error; 
      } 

      //Get product ID 
      $query = "SELECT `product_id` FROM `oc_product` WHERE `model`='$model'"; 
      $result = $con->query($query); 

      $rows = $result->fetch_array(); 

      $product_id = $rows[0]; 

      //Insert product category 
      $query = "INSERT INTO `oc_product_to_category` (`product_id`, `category_id`) VALUES ('$product_id', 59)"; 

      if (!$con->query($query)) { 
       echo $con->error; 
      }   

      //Insert product description 
      $query = "INSERT INTO `oc_product_description` (`product_id`, `language_id`, `name`, `description`,";     $query .= " `meta_description`, `meta_keyword`)"; 
      $query .= " VALUES ('$product_id', 1, '$name', '$description', '$description', '$description')"; 

      if (!$con->query($query)) { 
       echo $con->error; 
      }   

     } 

    } 

} 

} 

newProducts($handle,$con); 
+0

查询()可能返回你一个不同类型的对象,而不是真/假结果。 –

+0

当出现错误时,查询通常返回'null'或'false' – DevZer0

+0

那么vardump显示我只返回2个$结果。 – Melbourne2991

回答

0
if($result->num_rows == 0) echo "hi"; 
+0

不起作用,但是'if($ result-> num_rows> 0)echo“hi”;'回声两次.. – Melbourne2991

+0

将'else'加到'if'。你确定你的代码运行查询3次吗?也许'如果($ data [3] == $ code)'只有2次(我只是猜测)。 – furas