Aaron Reimann wrote:
Quote:
Here is my code:
if (is_array($_POST['commentsid'])) {
>
foreach ($_POST['commentsid'] as $id) {
>
$query = mysql_query("SELECT id_ministry FROM join_comments WHERE
id_ministry = '$id'")
or die("Bad query: ".mysql_error());
|
Euhm, security? I'd use an intval($id) or something to be sure it's not a
sql-injection.
Quote:
## if it is not in the database, insert the id
if (mysql_num_rows($query) == "0") {
$insert =
"INSERT INTO ".
"join_comments (username, creation_stamp, id_people, id_ministry) ".
"VALUES ('$_SESSION[valid_user]', '$datetime', '$_POST[id]',
'$id')";
|
You do know you don't HAVE to concate?
$insert = "INSERT INTO
join_comments (username, creation_stamp, id_people, id_ministry)
VALUES
('$_SESSION[valid_user]', '$datetime', '$_POST[id]','$id')";
Will work just fine, and saves some useless overhead.
Quote:
I think I need to do my delete before everything. He is an "english"
version of what I think needs to be done:
>
do a query selected all that is in the database
compare what was checked this time against was is checked now
if something is no longer checked {
delete from database the ones that are not in the database now
}
}
>
I hope this makes sense.
|
1. Create an array of available id's from you database (mysql_query(),
mysql_fetch_array() loop).
2. Make sure it's the same format as your $_POST array.
3. array_walk(array_name,'intval') to make sure you have all integers.
4. $to_be_deleted = array_dif($available_array,$post_array).
5. foreach($to_be_deleted) loop delete.
If I see your code now, I'd say that you might benifit from some protection
from SQL-injections. Loop up the subject on google, expacially
mysql_real_escape_string() etc.
Never, ever, trust userdata, not even when they're logged in, trusted
users.
--
Grtz,
Rik Wasmus