MySQL Forums
Forum List  »  PHP

update problem - need help quick!
Posted by: Zachary Canario
Date: April 09, 2006 11:45PM

When a user logs in I have a table that holds who is online. (The users are held in one row because I tryed doing the same thing but writing to a file and it didn't work.) Now Before the updating users was fine. Then all of a sudden the row is empty when a user is loged on. Here is my code for loging in a user and refreshing the user list.

Login user to userlist table:
function loginUser($username) {

$current_time = time();
$conn = @mysql_connect("localhost", "skycastlesoftware", "") or die("Couldn't connect to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$db = @mysql_select_db("skycastlesoftware_uk_db", $conn) or die("Couldn't select database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$sql = "SELECT data FROM userlist WHERE id = 1;";
$result = @mysql_query($sql, $conn) or die("Couldn't submit query to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$row = @mysql_fetch_array($result);

$usersinfo = explode(",", $row['data']);

for ($i = 0; $i < sizeof($usersinfo); $i++) {
$userdata = explode("|", $usersinfo[$i]);
if ($username == $userdata[0]) {
refreshSession($username);
return true;
break;
} else {
if ($row['data'] == "") {
$data = "$username|$current_time";
} else {
$data = $row['data'] . ",$username|$current_time";
}
}
}

if ($row['data'] != $data) {
$sql = "UPDATE userlist SET data = '" . $row['data'] . "' WHERE id = 1;";
$result = @mysql_query($sql, $conn) or die("Couldn't submit query to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
@mysql_close();
return true;
} else {
@mysql_close();
return false;
}
}


Refresh users in userlist table
function updateUserTable($username) {

$current_time = time();
$expiry_time = $current_time - 3600;

$conn = @mysql_connect("localhost", "skycastlesoftware", "") or die("Couldn't connect to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$db = @mysql_select_db("skycastlesoftware_uk_db", $conn) or die("Couldn't select database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$sql = "SELECT data FROM userlist WHERE id = 1;";
$result = @mysql_query($sql, $conn) or die("Couldn't submit query to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$row = @mysql_fetch_array($result);

//divide users into array
$usersinfo = explode(",", $row['data']);

//weed out old users
$j = 0;
for ($i = 0; $i < sizeof($usersinfo); $i++) {
$userdata = explode("|", $usersinfo[$i]);
if ($userdata[0] == $username) {
if ($j <= 1) {
$userfinal[] = $userdata[0] . "|" . $current_time;
$j++;
}
} else {
if (!($userdata[1] < $expiry_time)) {
$userfinal[] = $usersinfo[$i];
}
}
}

$userfinal = implode(",", $userfinal);

$conn = @mysql_connect("localhost", "skycastlesoftware", "") or die("Couldn't connect to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$db = @mysql_select_db("skycastlesoftware_uk_db", $conn) or die("Couldn't select database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());
$sql = "UPDATE userlist SET data = '$userfinal' WHERE id = 1;";
$result = @mysql_query($sql, $conn) or die("Couldn't submit query to database. In file: " . __file__ . " On line: " . __line__ . "<br /><br /><b>Mysql Error:</b><br />Error id: " . @mysql_errno() . "<br />Error Message: " . @mysql_error());

return true;
}

I don't think it's a problem with the php code. Some how the mysql table isn't being update. Plus I get no errors! Can some one help me. I need to find out why this is happening quick.

Options: ReplyQuote


Subject
Written By
Posted
update problem - need help quick!
April 09, 2006 11:45PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.