Jump to content
Larry Ullman's Book Forums

SaintClair

Members
  • Posts

    13
  • Joined

  • Last visited

Posts posted by SaintClair

  1. Ok Larry/guys I got it!  I dropped the add_to_cart stored proc and recreated it with an increased character acceptance from 32 to 100 for the uid.  So the problem was with the stored proc character limit.  I already updated the cart table previously to reflect the same :
     

    DELIMITER $$
    CREATE PROCEDURE add_to_cart (uid CHAR(100), type VARCHAR(6), pid MEDIUMINT, qty TINYINT)
    BEGIN
    DECLARE cid INT;
    SELECT id INTO cid FROM carts WHERE user_session_id=uid AND product_type=type AND product_id=pid;
    IF cid > 0 THEN
    UPDATE carts SET quantity=quantity+qty, date_modified=NOW() WHERE id=cid;
    ELSE 
    INSERT INTO carts (user_session_id, product_type, product_id, quantity) VALUES (uid, type, pid, qty);
    END IF;
    END$$
    DELIMITER ;
  2. Just dropped and recreated the get shopping cart contents stored proc.  And that didn't help, thought maybe it was corrupted some way.  I cleared all cache sense the beginning of time on laptop and tried to add to cart and it still isn't adding the item to the cart.  
    But of course it did give me a different UID this time:  f8f221f37c9901c9c53d2dd605f19b72.  Any ideas anyone?

  3. 1. Thank you Larry.  Ah okay, yes I am.  To check the session id would I have to place this in the cart.php file?:  session_start();    

    echo session_id();  

    2.  And have you confirmed what session value is being stored in the database?  This would be in the cart table?  Nothing is getting populated in the cart table :(

    3.  
    You may need to check the column's size restriction, too - Ok it was char32 I changed it to char 100.  Let me try this again and see what it does.

     
  4. Thank you Larry!  I didn't think about this until this caused me to look at my earlier post.  The post I posted at 2:44pm yesterday has the session id of:  SESSION] => 4fbc2b4445cceae1478d7de712f5659c

    But the session id after closing out the tab from yesterday and starting a new session this morning, they appear to have the same session id.  They can't be right? And shouldn't be stored in the cart table?

    This is from this morning:

    Results from echo'ing out these variables used in the add_to_cart stored proc:

    4fbc2b4445cceae1478d7de712f5659c

  5. Thanks much for this troubleshooting step JohnD!  Ok I tried it, and it did return back a return count of 0 for the rows.  So the disconnect is between me clicking the Add to Cart button on the Kona Decaf item and the CALL to the "CALL add_to_cart('$uid', '$sp_type', $pid, 1)");  So I echo'd out the variables used in the add_to_cart stored proc and they returned back correctly(see below).  It can't be the level of security of my cookies, I don't believe?  What else could I try?

    What was echo'd out.

    $r = mysqli_query($dbc, "CALL get_shopping_cart_contents('$uid')");

    $row_count = mysqli_num_rows($r);
    echo $row_count;
    echo $uid;
    echo $sp_type;
    echo $pid;


    Results from echo'ing out these variables used in the add_to_cart stored proc:

    04fbc2b4445cceae1478d7de712f5659ccoffee4

    So it came to $row_count = 0
    $uid = 
    4fbc2b4445cceae1478d7de712f5659c
    sp_type = coffee
    pid = 4


        

  6. Hi,

    I've been troubleshooting the Creating the Views section in Chapter 9 and I can't seem to figure out why it keeps displaying the emptycart.html after I click add to Cart for the Kona Decaf item?  It checks if the rows returned back from the Stored Proc is greater than zero.  It should be as I added the item but yet it keeps showing the HTML for emptycart.html and not the cart.html file.

    To troubleshoot to see if the "if else" and the cart.html is working I changed the code to if the rows returned are <=0 and it finally showed my cart.html.  But why doesn't it work when it is  $r > 0? 

     

    if (mysqli_num_rows($r) > 0) 
    { // Products to show!
    include ('/views/cart.html');
    } else
    { // Empty cart!
    include ('/views/emptycart.html');
    }


     

     

  7. Hi,

     

    I hope everyone is well.

     

    When running the stored procedure for creating select_products below in phpMYADMIN I get the error:   "#1064 - 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 '' at line 10".    When I look at the line, the syntax seems to be correct.  Line 10 is where "ORDER BY name ASC;" lies, and where the error message is stating the problem resides.  Can anyone point me in the right direction?

     

    Many Thanks,





     

    CREATE PROCEDURE select_products(type VARCHAR(6), cat TINYINT)
    BEGIN
    IF type = 'coffee' THEN
    SELECT gc.description, gc.image, CONCAT("C", sc.id) AS sku, 
    CONCAT_WS(" - ", s.size, sc.caf_decaf, sc.ground_whole, sc.price) AS name, 
    sc.stock 
    FROM specific_coffees AS sc INNER JOIN sizes AS s ON s.id=sc.size_id 
    INNER JOIN general_coffees AS gc ON gc.id=sc.general_coffee_id 
    WHERE general_coffee_id=cat AND stock>0 
    ORDER by name ASC;
    ELSEIF type = 'other' THEN
    SELECT ncc.description AS g_description, ncc.image AS g_image, 
    CONCAT("O", ncp.id) AS sku, ncp.name, ncp.description, ncp.image, 
    ncp.price, ncp.stock 
    FROM non_coffee_products AS ncp INNER JOIN non_coffee_categories AS ncc 
    ON ncc.id=ncp.non_coffee_category_id 
    WHERE non_coffee_category_id=cat ORDER by date_created DESC;
    END IF;
    END$$
×
×
  • Create New...