prepare("SELECT DISTINCT username FROM users WHERE 1"); $q->execute(); while($r = $q->fetch(PDO::FETCH_ASSOC)) { $user = $r['username']; if($user == '') continue; $qq = $pdo->prepare("SELECT * FROM users WHERE username='$user'"); $qq->execute(); if($qq->rowCount() <= 1) continue; /* Fix $user */ /* Load all their data */ while($rr = $qq->fetch(PDO::FETCH_ASSOC)) { $types = explode(',', $rr['types']); foreach($types as $t) { $u[$t] = $rr; } } /* Make sure we have what we think we have */ $cid = intval($u['committee']['id']); $vid = intval($u['volunteer']['id']); if($cid == 0 || $vid == 0) { echo "\n\n\nDATABASE ERROR: User $user exists multiple times, but I was unable to fix it. Please visit www.sfiab.ca and send us an email so we can help sort out your database. It is likely that user $user will experience problems logging in\n\n\n"; continue; } /* Copy everything into the committee entry */ $fields = array('firstname','lastname','username','password', 'email', 'phonehome','phonework','phonecell','fax','organization', 'address','address2','city','province','postalcode'); $query = "`types`='committee,volunteer'"; foreach($fields as $f) { if($u['committee'][$f] == '' && $u['volunteer'][$f] != '') { $v = $u['volunteer'][$f]; $query .= ",`$f`='$v'"; } } $query = "UPDATE users SET $query WHERE id='$cid'"; echo "$query\n"; $stmt = $pdo->prepare($query); $stmt->execute(); /* Now fix the volunteers links */ $query = "UPDATE volunteer_positions_signup SET users_id='$cid' WHERE users_id='$vid'"; echo "$query\n"; $stmt = $pdo->prepare($query); $stmt->execute(); /* The user_volunteer table is empty, we should just delete it, * no need to update it */ /* Delete the old user */ $query = "DELETE FROM users WHERE id='$vid'"; echo "$query\n"; $stmt = $pdo->prepare($query); $stmt->execute(); } } ?>