xgstr
xgstr

Reputation: 301

PHP loop to make MYSQL Queries

I have a list of IDs generated from a set of checkboxes as follows:

$list = mysql_real_escape_string(implode(',',$_POST['checkbox']));

which outputs a list like this:

a,b,c

I want to set a column in a MYSQL database that corresponds to each list item, I am unsuccessfully trying to create a query with a foreach loop like so:

$update_query= '';
foreach($list as $item){     //error on this line
 $update_query .= "
  INSERT INTO t (Col_1, Col_2)
  VALUES  ('".$item."',now());
     ";}

It fails telling me I have supplied an invalid argument for foreach(), but I'm not sure, a. what that means, and b. how to fix it; can anyone offer any guidance to get my loop working or a better way of doing this INSERT.

Thanks

Upvotes: 0

Views: 97

Answers (1)

BenM
BenM

Reputation: 53246

$list is a string, not an array. Try passing in the array before you have imploaded it:

$update_query= '';

foreach($_POST['checkbox'] as $item)
{
    $update_query .= "INSERT INTO t (Col_1, Col_2) VALUES ('".addslashes($item)."', now());"; 
}

You'd be much better off using prepared statements, though!

Upvotes: 3

Related Questions