mysqli query in WHILE loop

21,251

yes you can use it in a loop and

you may wanna add mysql_error() function to find out what's wrong with it and try to fix it or by adding the error to the question so we can tell you what to do

$data = mysqli_query($con,"SELECT * FROM Cart WHERE Buyer_ID='$_SESSION[cid]' AND Cart_Date='$_SESSION[cdate]'");
while($build = mysqli_fetch_array($data))
{ 
    // echo $build[idex]."<br>";
    mysqli_query($con,"INSERT INTO precords(precord,Buyer_ID,Account,Purchase_Date,Item_Number,Item_Qty,Item_Title,Item_FPrice,Item_FFLFlag,ccpass) 
                       VALUES ('$build[idex]','$build[Buyer_ID]','$build[Cart_Date]','$build[Item_Number]','$build[Item_Qty]','$build[Item_Title]','$build[Item_FPrice]','$build[Item_FFLFlag]','N')")
        or die (mysql_error());
};
Share:
21,251
DMSJax
Author by

DMSJax

Updated on July 09, 2022

Comments

  • DMSJax
    DMSJax almost 2 years

    1.) Can you nest a msqli_query inside a while loop?

    2.) If yes, why would the PHP below not write any data to the precords table?

    If I echo a $build array variable it shows properly, but the mysqli insert writes nothing to the table in the DB. THe code does not error out anywhere, so what am I missing about this?

    $data = mysqli_query($con,"SELECT * FROM Cart WHERE Buyer_ID='$_SESSION[cid]' AND Cart_Date='$_SESSION[cdate]'");
    while($build = mysqli_fetch_array($data))
    { 
    //echo $build[idex]."<br>";
    mysqli_query($con,"INSERT INTO precords (precord,Buyer_ID,Account,Purchase_Date,Item_Number,Item_Qty,Item_Title,Item_FPrice,Item_FFLFlag,ccpass) VALUES ('$build[idex]','$build[Buyer_ID]','$build[Cart_Date]','$build[Item_Number]','$build[Item_Qty]','$build[Item_Title]','$build[Item_FPrice]','$build[Item_FFLFlag]','N')");
    };
    

    Thanks for any help.

    ** P.S. - This code is meant to move certain values from a TEMPORARY table/session variables, over to a permanent record table, but the loop is needed since there is more than one product in the cart associated with the user/session.

  • DMSJax
    DMSJax almost 11 years
    Added the mysql_error but it does not report/show an error - having said that, a subsequent block of code now does not work so the OR DIE seems to be being triggered. I'll try to get something to work out the specific error
  • Michael Berkowski
    Michael Berkowski almost 11 years
    Because this is mysqli not mysql. You need mysqli_error($con) instead.
  • DMSJax
    DMSJax almost 11 years
    @MichaelBerkowski I figured that out right after posting the comment. Thanks