Help - Search - Members - Calendar
Full Version: Please help.
HTMLHelp Forums > Programming > Databases
NomadUK
I have re engineered this script for a new shopping cart system. I originally paid for it when it was used on an interspire installation.

It is importing but missing lines. it imports all the values from prices and products but not descriptions. the only common denominator is the "&" symbol on the missing products descriptions.

CODE
<?php

class ProductImport{
  
   private $dbuser;
   private $dbpass;
   private $dbhost;
   private $db;
   private $importurl;
   private $product_table;
   private $product_image_table;
   private $product_category;
   private $console_string;
  
  
  
    public function __construct(){
    
    
    $this->_dbuser="blah";
    $this->_dbpass="testdev";
    $this->_dbhost="localhost";
    $this->_db="blah_testdev";
    /*$this->_importurl="http://www.domainname.co.uk/datafeed/download.asp?account=accoundn+feedid=3072";*/
    $this->_importurl="directfile.csv";
    $this->_product_table='cscart_products';
    $this->_product_descriptions='cscart_product_descriptions';
    $this->_product_prices='cscart_product_prices';
    $this->_Products_categories='cscart_products_categories';
    $this->_product_image_table='cscart_temp_product_images';
    //$this->_product_category='cscart_temp_categoryassociations';
    $this->_console_string='Collecting Product data from feed url...';
    }
    public function get_connection()
    {
        return @mysql_connect($this->_dbhost, $this->_dbuser , $this->_dbpass);
        }
        public function select_database($con)
        {
            mysql_select_db($this->_db, $con);
            }
            public function start_import_product()
            {
                $product_inserted=array();
                $csv = $this->_importurl;
                $file_handle = fopen($csv, "r");
                $i=0;
                while (!feof($file_handle) )
                {
                    $rows = fgetcsv($file_handle);
                    if($i==0){$i++; continue;
                    }
        $product_inserted[]=$this->insert_product($rows);
        
        
       }
       echo "<br>";
       echo "--------------------";
       echo "<br>";
       echo "Script Ended Sucessfully !!!!!";
       echo "<br>";
       echo "--------------------";
       echo "<br>";
       }
      
    
     public function insert_product($rows)
      {
       $connection=$this->get_connection();
       if(!$connection)
         {
          $this->stop_error('Unable to connect to Database');
         }
        
        $this->select_database($connection);
        $product_inserted=$this->insert_product_row($rows);
        
      }
      public function insert_product_row($rows)
      {
        
          
            /*---------Image data----------*/
                $image_array=array();
                $image_array['date']=time();
                $image_array['image_thumb'] = $rows[3];
                $image_array['image_large'] = $rows[2];
            /*---------Image data----------*/
                
                
            /*--------Product data---------*/
                $description=$rows[0];
                $name=$rows[1];
                $price=$rows[4];
                $status=$rows[5];
                $stock=$rows[6];
                $weight=$rows[7];
                $costprice=$rows[8];
                $categories=$rows[9];
                $productcode=$rows[10];
                $store=$rows[11];
                $prodname=$rows[12];
                $metaname=$rows[13];
                $impdate=time();
                $visibility=0;
                $catid=147;
                
                if($store=='domainname.com') {
                    $compid=1;
                }
                else
                {
                    $compid=2;
                }
                
            /*-------Refurbished Stock-------
                
                if($condition=='NEW'){
                    $showcond=0;
                }
                else
                {
                    $showcond=1;
                    $condition='Refurbished';
                }

            --------------------------------*/                                         

            /*----Discontinued Products-----*/    
                if($status=='ACTIVE'){
                    $status='A';
                }
                else
                {
                    $status='H';
                }

                
            /*--------Product Data End---------*/
            
         $already_product_id=$this->product_already_check($rows[10]);
        
         if($already_product_id==0)
         {
            if(!mysql_query("INSERT INTO ".$this->_product_table."& #40;product_code,status,company_id,list_price,amount,weight,out_of_stock_actions
) VALUES                 ('$productcode','$status','$compid','$costprice','$stock','$weight','S')"))
            {
                  echo mysql_error();
                echo "<br>";
                die;
            }
            $productid=mysql_insert_id();
            echo "Inserted the productId:".$productid." successfully !";
            echo "<br>";
         }
    /*-------Inserted the data in related tables-------*/
          if($productid){
         mysql_query("INSERT INTO `cscart_product_descriptions` & #40;product_id,lang_code,product,short_description,full_description,meta_descrip
tion) VALUES      ('$productid','EN','$prodname','$name','$description','$metaname')");
         mysql_query("INSERT INTO `cscart_product_prices` (product_id,price) VALUES  ('$productid','$price')");
         {
        
                 echo mysql_error();
                  echo "<br>";
                die;
         }}
         else {  //Update the product
        
         $update_query="UPDATE ".$this->_product_table." SET product_code = '$productcode' , list_price='$costprice' , amount='$stock' , ' WHERE productid ='".$already_product_id."'";
         $update_query="UPDATE ".$this->_product_prices." SET product_id = '$productid' , price='$price' , 'WHERE productid='".$already_product_id."'";
        
         if(!mysql_query($update_query))
          {
              //echo "<br>";
              }
              echo mysql_error();
              echo "<br>";
              echo "Updated the productId:".$already_product_id." successfully !";
              echo "<br>";
              }
              }
      
       public function product_already_check($poduct_name){
           $q="SELECT * FROM cscart_products WHERE product_code ='".$poduct_name."'";
           $res=mysql_query($q);
           $num=mysql_num_rows($res);
           if($num==0){return 0;}
           else{$row=mysql_fetch_array($res); return $row['product_id']; }
           }
        public function stop_error($Error_string){
        print("//----------------------------------//<br>");
        print("---".$Error_string."---<br>");
        print("//----------------------------------//<br>");
        exit(0);
     }


the error i get is:

Collecting Product data from feed url...
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''WHERE productid='1'' at line 1
Updated the productId:1 successfully !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''WHERE productid='2'' at line 1
Updated the productId:2 successfully !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''WHERE productid='3'' at line 1

Hope you can help and thanks in advance.
NomadUK
Fixed, Incase you were wondering.

old line

CODE
$update_query="UPDATE ".$this->_product_prices." SET product_id = '$productid' , price='$price' , 'WHERE productid='".$already_product_id."'";


New line

CODE
$update_query="UPDATE ".$this->_product_prices." SET price = '$price' WHERE product_id = ".$already_product_id;


I also had to remove updating the product ID, was getting a duplicate field error
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2019 Invision Power Services, Inc.