2013-07-14 3 views
0

csv 파일에서 내 웹 사이트로 제품을 업로드하는 스크립트를 작성 중입니다. 나는 $ if($result) echo "hi";가 $ 결과가있을 때 반향을 일으키지 만 문제가 발생했을 때 if(!result) 또는 if(empty($result) 또는 if(!isset(result))이 반향하지 않는 문제가 발생했습니다 ... productlist.txt의 코드 목록에 3 제품 코드, 그 중 2 개는 데이터베이스에 있는데, 나는 ($ result) echos 2 'hi'를 가지고 있지만 if (! result) 아무것도 가지고 있지 않다면 echo가 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

글쎄, var dump는 2 $의 결과 만 반환된다는 것을 보여 줬습니다. – Melbourne2991

답변

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

그러나'if ($ result-> num_rows> 0) echo "hi";'echo'twice .. – Melbourne2991

+0

'if'에'else'를 추가합니다. 코드가 3 번 쿼리를 실행 했습니까? 어쩌면'if ($ data [3] == $ code)'가 단지 2 번 (나는 단지 추측하고있다)이다. – furas