I'm trying to create a twitter style following system for my site. When ever the script below runs is adds an "Array" inside the database instead of just the user id of the person you're trying to follow. Dunno how to fix it.
<?
session_start();
# Connect to the mysql database
include_once "library/connect_to_mysql.php";
if(isSet($_POST['mem'])){
#filter everything but numbers for security
$mem1 = preg_replace('#[^0-9]#i', '', $_POST['mem']);
$mem2 = $mem1;
#Decode the Session IDX variable and extract the user's ID from it
$decryptedID = base64_decode($_SESSION['idx']);
$id_array = explode("p3h9xfn8sq03hs2234", $decryptedID);
$my_id = $id_array[1];
$sql = mysql_query("SELECT following_array FROM Members WHERE id='$my_id' LIMIT 1");
while($row = mysql_fetch_array($sql)) {
$following = $row["following_array"];
}
$followArry1 = explode(',', $following);
if (in_array($mem1, $followArry1)) {
exit();
}
if ($followArry1 != "") {
$followArry2 = "$followArry1,$mem2";
} else {
$followArry2 = "$mem2";
}
$UpdateArray = mysql_query("UPDATE Members SET following_array ='$followArry2' WHERE id='$my_id'") or die (mysql_error());
exit();
}else{
exit();
}
?>
Any help appreciated
/////// Updated Code ////////////////////
$followArry1 = explode(",", $following);
if (in_array($mem1, $followArry1)) { exit(); }
if ($followArry1 != "") {
$followArry1 = implode(',', $followArry1 + array($mem1));
} else {
$followArry1 = $mem1;
}
$UpdateArray = mysql_query("UPDATE myMembers SET following_array ='$followArry1' WHERE id='$my_id'") or die (mysql_error());
I also think that the problem is with adding $mem variable to $followyArry1 array.
Try this code...
if ($followArry1 != "") {
$followArry1[] = $mem1;
$followArry1 = implode(',', $followArry1);
} else {
$followArry1 = $mem1;
}
$followArry1
is an array, which converted to string shows "Array
".
See proof here (live demo: http://ideone.com/tMndH):
$followArry1 = array('a', 'b', 'c'); // just an array
$result = "$followArry1"; // it is now string containing "Array"
Try the following (example here: http://ideone.com/h5ilz):
$followArry1 = array('a', 'b', 'c');
$mem = 'd';
$followArry2 = implode(',', $followArry1 + array($mem));