The Web Design Group

... Making the Web accessible to all.

Welcome Guest ( Log In | Register )

> Insert Multiple Rows into MySQL Database with PHP, Why does it only insert one row?
Dante Monaldo
post Aug 8 2012, 09:58 PM
Post #1


Advanced Member
****

Group: Members
Posts: 124
Joined: 22-March 09
From: California, USA
Member No.: 8,132



I have some code that takes 50 products from an API catalog and should be adding them to a database on my site. However, when I run the code, 50 rows are created, but only one product is added. All the other rows are left blank.

Has anybody had this problem before? What am I missing?

CODE
$insert = mysql_query("INSERT INTO imported_products (advertiser_id, buy_url, catalog_id, currency, description, image_url, in_stock, isbn, manufacturer_name, manufacturer_sku, name, price, retail_price, sale_price, sku, upc)
                    VALUES('$advertiser_id', '$buy_url', '$catalog_id', '$currency', '$description', '$image_url', '$in_stock', '$isbn', '$manufacturer_name', '$manufacturer_sku', '$name', '$price', '$retail_price', '$sale_price', '$sku', '$upc')");
    if(!$insert){
        $update = mysql_query("UPDATE imported_products SET advertiser_id='$advertiser_id', buy_url='$buy_url', catalog_id='$catalog_id', currency='$currency', description='$description', image_url='$image_url', in_stock='$in_stock', isbn='$isbn', manufacturer_name='$manufacturer_name', manufacturer_sku='$manufacturer_sku', name='$name', price='$price', retail_price='$retail_price', sale_price='$sale_price', upc='$upc' WHERE sku='$sku'") or die (mysql_error());
        if(!$update){
            echo 'Could not update product. SKU: '.$sku.'';
        } else {
            echo 'UPDATE Mission Accomplished.';
        }
    } else {
        echo 'INSERT INTO Mission Accomplished.';
    }
}


I would really appreciate some help on this smile.gif
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
 
Reply to this topicStart new topic
Replies
Dante Monaldo
post Aug 13 2012, 03:45 PM
Post #2


Advanced Member
****

Group: Members
Posts: 124
Joined: 22-March 09
From: California, USA
Member No.: 8,132



Okay Brian, I see what you are saying with putting the fields in an array, it would definitely simplify the code. But what about getting the actual data inserted into the database? I figured out the format of the feed and can control it as such:

$feed->products is the array the holds the multiple products

$feed->products->product is the array for the individual product that holds the data for that product

So now I have full control of displaying the products on the screen. For example, if I wanted to display the name of the 3rd product in the array, I would write:
CODE
echo $feed->products->product[3]->name;


And that works perfectly! I just can't get it into the database. When I run it, I can get one row added to the table with the product data in it, but that's it. It's as if the table will only hold one row. When I run it again, with a different product, nothing happens. Even when I do something simple like this, it still doesn't work:

CODE
$name = $feed->products->product[3]->name;
$insert = mysql_query("INSERT INTO imported_products (name) VALUES ('$name')");


Any ideas why it's doing this?
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Ephraim F. Moya
post Aug 16 2012, 12:07 PM
Post #3


Advanced Member
****

Group: Members
Posts: 167
Joined: 2-September 07
From: New Mexico
Member No.: 3,702



QUOTE(Dante Monaldo @ Aug 13 2012, 02:45 PM) *

Okay Brian, I see what you are saying with putting the fields in an array, it would definitely simplify the code. But what about getting the actual data inserted into the database? I figured out the format of the feed and can control it as such:

$feed->products is the array the holds the multiple products

$feed->products->product is the array for the individual product that holds the data for that product

So now I have full control of displaying the products on the screen. For example, if I wanted to display the name of the 3rd product in the array, I would write:
CODE
echo $feed->products->product[3]->name;


And that works perfectly! I just can't get it into the database. When I run it, I can get one row added to the table with the product data in it, but that's it. It's as if the table will only hold one row. When I run it again, with a different product, nothing happens. Even when I do something simple like this, it still doesn't work:

CODE
$name = $feed->products->product[3]->name;
$insert = mysql_query("INSERT INTO imported_products (name) VALUES ('$name')");


Any ideas why it's doing this?




Just after this point in your code:

$feed = produce_XML_object_tree($xml);

add these lines:

$f = print_r($feed, true);
echo "<pre>{$f}</pre>";
exit;

This should print out your entire $feed array.
Analyze the data you get to see exactly what you're getting. Look for the key format and the other field's formats. I believe you'll get something like I've posted before.

User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post

Posts in this topic
Dante Monaldo   Insert Multiple Rows into MySQL Database with PHP   Aug 8 2012, 09:58 PM
Ephraim F. Moya   I have some code that takes 50 products from an A...   Aug 9 2012, 08:55 AM
Dante Monaldo   Whoops, looks like I left that chunk out. Here...   Aug 9 2012, 12:42 PM
Ephraim F. Moya   Whoops, looks like I left that chunk out. Here...   Aug 9 2012, 03:46 PM
Dante Monaldo   I had this code working earlier to simply display ...   Aug 9 2012, 05:24 PM
Ephraim F. Moya   I had this code working earlier to simply display...   Aug 9 2012, 07:59 PM
Dante Monaldo   Yes, I think I hear what you are saying. I'm j...   Aug 9 2012, 11:08 PM
Ephraim F. Moya   [size=5] [code]This is what your array should loo...   Aug 11 2012, 02:16 PM
Brian Chandler   Can you explain what this means? In general, one...   Aug 11 2012, 10:36 PM
Ephraim F. Moya   Can you explain what this means? In general, on...   Aug 12 2012, 10:28 AM
Brian Chandler   I still can't parse "leaves the status ...   Aug 13 2012, 04:10 AM
Ephraim F. Moya   $fields = array(' 'advertiser...   Aug 13 2012, 10:27 PM
Dante Monaldo   Okay Brian, I see what you are saying with putting...   Aug 13 2012, 03:45 PM
Brian Chandler   Okay Brian, I see what you are saying with puttin...   Aug 14 2012, 01:48 AM
Ephraim F. Moya   Okay Brian, I see what you are saying with puttin...   Aug 16 2012, 12:07 PM
Brian Chandler   This does not make sense. If $feed->prod...   Aug 14 2012, 01:37 AM
Brian Chandler   Right. This is a typo... No, it doesn't. ...   Aug 14 2012, 01:47 AM
Ephraim F. Moya   What about when each entry in the products array...   Aug 14 2012, 09:33 AM
Dante Monaldo   So, I'm back with another question relating to...   Nov 11 2012, 08:45 PM


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 28th March 2024 - 09:03 PM