Jump to content

Identifier Why Item Wont Insert? - Very Confusing


justlukeyou

Recommended Posts

Hi,

 

I have the following code which should insert information into two tables "productdbase" and "furniture_groups". However the code inserts more lines into productdbase than what it does into furniture_groups. For example products 1-10 will be inserted into productdbase but only 1,3,4,7 and 9 will be inserted into furniture_groups.

 

However there appears to be nothing different between lines 2 and 3 or 6 and 7.

 

Is it possible to create a code as to why something wont insert into a table?

 

 

        	$fp = $zip->getStream("datafeed_98057.xml"); //file inside archive
        	if(!$fp)
        		die("Error: can't get stream to zipped file");
        	$buf = ""; 
        	ob_start();
        	while (!feof($fp)) 
        		$buf .= fread($fp, 2048);
        	$s = ob_get_contents();
        	ob_end_clean();
        	if(stripos($s, "CRC error") != FALSE)
        		die('CRC32 mismatch');
        	fclose($fp);
        	$zip->close();
        	$ax = strocc($buf, '<prod', '</prod>');
        	
        	echo '<pre>';
        	for($i=0; $i<sizeof($ax); $i++)
        	{ 
        		$arr = $ax[$i];
        		echo strpp($arr, '<pId>', '</pId>') ."<br />";
        		echo strpp($arr, '<mCat>', '</mCat>') ."<br />";
        		echo strpp($arr, '<awCat>', '</awCat>') ."<br />";
        		$desc = '';
        		if(strpos($ax[$i], '<desc>')!==FALSE)
        		{
        			$desc = safe_string_escape(strpp($ax[$i], '<desc>', '</desc>'));
        		}
        		$discount = 0;
        		if(floatval(strpp($arr, '<rrp>', '</rrp>'))!=0)
        			$discount = 100 - (floatval(strpp($arr, '<buynow>', '</buynow>')) / floatval(strpp($arr, '<rrp>', '</rrp>')) * 100);
        		mysql_query("insert into productdbase SET  
        					 image_link = '" .safe_string_escape(strpp($arr, '<awImage>', '</awImage>')) ."', 
        				     link = '" .safe_string_escape(strpp($arr, '<awTrack>', '</awTrack>')) ."', 
        					 name = '" .safe_string_escape(strpp($arr, '<name>', '</name>')) ."', 
        					 linkname = '" .str_replace("---", "-", str_replace(" ", "-", safe_string_escape(strpp($arr, '<name>', '</name>')))) ."', 
        					 fulldescription = '$desc', 
        					 merchant_category = '" .safe_string_escape(strpp($arr, '<mCat>', '</mCat>')) ."', 
        				     price = '" .safe_string_escape(strpp($arr, '<buynow>', '</buynow>')) ."', 
        					 discount = '$discount', 
        					 merchant = '" .safe_string_escape(strpp($arr, 'name="', '"')) ."', 
        					 promotional_text = '$desc', 
        				     id = '" .strpp($arr, '<pId>', '</pId>') ."'");
        					 
        			
        		mysql_query("insert into furniture_groups SET  
        					 long_name = '" .safe_string_escape(strpp($arr, '<mCat>', '</mCat>')) ."', 
        					 short_name = '" .safe_string_escape(strpp($arr, '<awCat>', '</awCat>')) ."', 
        				     id = '" .strpp($arr, '<pId>', '</pId>') ."'");	 
        					 
        		//echo mysql_error();
        	}
        }
        else
        	echo "zip not found";
        unlink($file);


        	

        function strocc($str, $pos1, $pos2)
        {
        	$pos=0;
        	$occ=array();
        	while(strpos($str, $pos1, $pos) && strpos($str, $pos2, strpos($str, $pos1, $pos)))
        	{
        		array_push($occ, strpp($str, $pos1, $pos2, $pos));
        		$pos = strpos($str, $pos2, strpos($str, $pos1, $pos));
        	}
        	return ($occ);
        } 

        function strpp($str, $pos1, $pos2, $startoffset=0)
        {
        	return substr($str, (strpos($str, $pos1, $startoffset)+strlen($pos1)), strpos($str, $pos2, strpos($str, $pos1, $startoffset)+strlen($pos1))-(strpos($str, $pos1, $startoffset)+strlen($pos1)));
        }

        function mysqlinit($user, $pass, $db, $host='localhost')
        {
        	$link = mysql_connect($host, $user, $pass);
        	if (!$link)
        	{
        		echo('Cant connect to MySQL : ' .mysql_error());
        		return 0;
        	}
        	$db_selected = mysql_select_db($db, $link);
        	if (!$db_selected)
        	{
        		echo('Cant use database ' .$db .': ' .mysql_error());
        		return 0;
        	}
        	return 1;
        }


        function safe_string_escape($str)
        {
        	$len=strlen($str);
        	$escapeCount=0;
        	$targetString='';
        	for($offset=0;$offset<$len;$offset++) {
        		switch($c=$str{$offset}) {
        			case "'":
        				if($escapeCount % 2 == 0) $targetString.="\\";
        				$escapeCount=0;
        				$targetString.=$c;
        				break;
        			case '"':
        				if($escapeCount % 2 == 0) $targetString.="\\";
        				$escapeCount=0;
        				$targetString.=$c;
        				break;
        			case '\\':
        				$escapeCount++;
        				$targetString.=$c; 
        				break;
        			default:
        				$escapeCount=0;
        				$targetString.=$c;
        		}
        	}
        	return $targetString;
        }

    Quick reply to this message Reply   Reply With Quote Reply With Quote   Multi-Quote This Message      


Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.