Jump to content

Adding a user to a public league.


micmania1

Recommended Posts

I'm creating a prediction league game and i'm having a bit of a problem.

I can't get my script to enter the user into 1 league. Instead it is adding the user into 2 leagues at 1 time and I have tried all sorts to prevent this.

Here is the the script that is closest to what I want to happen...
[code]$query = "SELECT league_1, league_2, league_3, league_4, league_5 FROM users WHERE user_id=$user_id LIMIT 1";
$result = @mysql_query($query);
$num = mysql_num_rows($result);

if ($num = 0) { // User does not exist.
echo '<a class=black href=index.php>Home</a>';
exit();
} else {
while ($row = mysql_fetch_array($result)) {
if (($row['league_1'] != 0) && ($row['league_2'] != 0) && ($row['league_3'] != 0) && ($row['league_4'] != 0) && ($row['league_5'] != 0)) {
echo 'You have already entered the maximum of 5 leagues.<br>';
exit();
} else {
$query1 = "SELECT * FROM leagues WHERE league_id !='".$row['league_1']."' AND league_id !='".$row['league_2']."' AND league_id !='".$row['league_3']."' AND league_id !='".$row['league_4']."' AND league_id !='".$row['league_5']."' ORDER BY league_id LIMIT 1";
$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);

if ($num1 == 0) {
$query2 = "INSERT INTO leagues (league_name, league_status, league_number_teams) VALUES ('Public League', 'Public', '0')";
$result2 = @mysql_query($query2);

$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);
}

while ($row1 = mysql_fetch_array($result1)) {
// Search for a free league to enter the user into.
if ($row['league_1'] == 0) {
$query3 = "UPDATE users SET league_1='".$row1['league_id']."' WHERE user_id=$user_id LIMIT 1";
$result3 = @mysql_query($query3);
$affrows = mysql_affected_rows();

if ($affrows = 1) {
echo 'You have succesully entered a public league.<br><br>';
}
} else if ($row['league_2'] == 0) {
$query3 = "UPDATE users SET league_2='".$row1['league_id']."' WHERE user_id=$user_id LIMIT 1";
$result3 = @mysql_query($query3);
$affrows = mysql_affected_rows();

if ($affrows = 1) {
echo 'You have succesully entered a public league.<br><br>';
}
} else if ($row['league_3'] == 0) {
$query3 = "UPDATE users SET league_3='".$row1['league_id']."' WHERE user_id=$user_id LIMIT 1";
$result3 = @mysql_query($query3);
$affrows = mysql_affected_rows();

if ($affrows = 1) {
echo 'You have succesully entered a public league.<br><br>';
}
} else if ($row['league_4'] == 0) {
$query3 = "UPDATE users SET league_4='".$row1['league_id']."' WHERE user_id=$user_id LIMIT 1";
$result3 = @mysql_query($query3);
$affrows = mysql_affected_rows();

if ($affrows = 1) {
echo 'You have succesully entered a public league.<br><br>';
}
} else if ($row['league_5'] == 0) {
$query3 = "UPDATE users SET league_5='".$row1['league_id']."' WHERE user_id=$user_id LIMIT 1";
$result3 = @mysql_query($query3);
$affrows = mysql_affected_rows();

if ($affrows = 1) {
echo 'You have succesully entered a public league.<br><br>';
}
}
} // end while
}// end if
} // end while
} // end if ($num = 0)[/code]

A user cannot enter more than 5 leagues.
A league cannot have more than 20 members in it. (feature hasn't been added yet.)
A user cannot enter the same league twice.
Once a user has entered a league, they can withdraw from it using another script.

At the moment, my database is set up like this...
[b]Users[/b]
user_id
+ more which arent needed...

[b]league_id[/b]
league_id
+ more not needed

[b]user_leagues[/b]
join_id
league_id
user_id

If anybody can help it would be greatly appreciated.

Thanks in advance,
Michael.
Link to comment
https://forums.phpfreaks.com/topic/34887-adding-a-user-to-a-public-league/
Share on other sites

Ive just realised I posted the wrong version of script.

Here is the correct version...

[code]
$query = "SELECT league_id FROM user_leagues WHERE league_id !=0 AND user_id=$user_id";
$result = @mysql_query($query);
$num = mysql_num_rows($result);
echo 'query: '.$query.'<br>';

if ($num == 0) {
echo 'num = 0<br>';
$query1 = "SELECT * FROM leagues LIMIT 1";
$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);
} else if ($num == 5) {
echo 'You have already entered the maximum of 5 leagues.<br>';
exit();
} else {
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
if($num == 4) {
$query1 = "SELECT * FROM leagues WHERE league_id != '".$row[0]['league_id']."' AND league_id != '".$row[1]['league_id']."' AND league_id != '".$row[2]['league_id']."' AND league_id != '".$row[3]['league_id']."' LIMIT 1";
$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);
} else if ($num == 3) {
$query1 = "SELECT * FROM leagues WHERE league_id != '".$row[0]['league_id']."' AND league_id != '".$row[1]['league_id']."' AND league_id != '".$row[2]['league_id']."' LIMIT 1";
$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);
} else if ($num == 2) {
$query1 = "SELECT * FROM leagues WHERE league_id != '".$row[0]['league_id']."' AND league_id != '".$row[1]['league_id']."' LIMIT 1";
$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);
} else if ($num == 1) {
$query1 = "SELECT * FROM leagues WHERE league_id != '".$row[0]['league_id']."' LIMIT 1";
$result1 = @mysql_query($query1);
$num1 = mysql_num_rows($result1);
} // end if $num >=5)
} // end while
} // end if ($num == 0)

if ($num1 == 0) {
$query2 = "INSERT INTO leagues (league_name, league_status, league_number_teams) VALUES ('Public League', 'Public', '0')";
$result2 = @mysql_query($query2);

echo 'query2: '.$query2.'<br>';

$query1 = "SELECT * FROM leagues ORDER BY league_id DESC LIMIT 1";
$result1 = @mysql_query($query1);
}

echo 'query1: '.$query1.'<br>';

$query3 = "SELECT * FROM user_leagues WHERE league_id='0' AND user_id=$user_id LIMIT 1";
$result3 = @mysql_query($query3);

echo 'query3: '.$query3.'<br>';

while (($row1 = mysql_fetch_array($result1, MYSQL_BOTH)) && ($row3 = mysql_fetch_array($result3, MYSQL_BOTH))) {
$query4 = "UPDATE user_leagues SET league_id='{$row1['league_id']}' WHERE join_id='{$row3['join_id']}' LIMIT 1";
$result4 = @mysql_query($query4);

echo 'query4: '.$query4.'<br>';
echo '<table><tr><td>lid</td></tr><tr><td>'.$row1['league_id'].'</td></tr></table>';
echo '<table><tr><td>jid</td><td>lid</td><td>uid</td></tr><tr><td>'.$row3['join_id'].'</td><td>'.$row3['league_id'].'</td><td>'.$row3['user_id'].'</td></tr></table><br>';
if ($result4) {
echo 'You have succesfully been added to Public League '.$row1['league_id'].'.<br>';
}
} // end while

[/code]
[code]// find users current leagues.
$query = "SELECT * FROM users WHERE user_id=$user_id LIMIT 1";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$query1 = "SELECT * FROM leagues WHERE league_id <> '{$row['league_1']}' AND league_id <> '{$row['league_2']}' AND league_id <> '{$row['league_3']}' AND league_id <> '{$row['league_4']}' AND league_id <> '{$row['league_5']}' AND league_number_teams < 20 AND league_status = 'Public' ORDER BY league_id LIMIT 1";
$result1 = mysql_query($query1);

if ($row['league_1'] == 0) {
while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
$query2 = "UPDATE users SET league_1='{$row1['league_id']}' WHERE user_id=$user_id";
$result2 = mysql_query($query2);
$affrows = mysql_affected_rows();
echo $query2.'<br><br>';
if ($affrows == 1) {
echo 'You have successfully been entered into a Public League.<br><br>';
}
} // end while
} else if ($row['league_2'] == 0) {
while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
$query2 = "UPDATE users SET league_2='{$row1['league_id']}' WHERE user_id=$user_id";
$result2 = mysql_query($query2);
$affrows = mysql_affected_rows();
echo $query2.'<br><br>';

if ($affrows == 1) {
echo 'You have successfully been entered into a Public League.<br><br>';
}
} // end while
} else if ($row['league_3'] == 0) {
while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
$query2 = "UPDATE users SET league_3='{$row1['league_id']}' WHERE user_id=$user_id";
$result2 = mysql_query($query2);
$affrows = mysql_affected_rows();
echo $query2.'<br><br>';

if ($affrows == 1) {
echo 'You have successfully been entered into a Public League.<br><br>';
}
} // end while
} else if ($row['league_4'] == 0) {
while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
$query2 = "UPDATE users SET league_4='{$row1['league_id']}' WHERE user_id=$user_id";
$result2 = mysql_query($query2);
$affrows = mysql_affected_rows();
echo $query2.'<br><br>';

if ($affrows == 1) {
echo 'You have successfully been entered into a Public League.<br><br>';
}
} // end while
} else if ($row['league_5'] == 0) {
while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) {
$query2 = "UPDATE users SET league_5='{$row1['league_id']}' WHERE user_id=$user_id";
$result2 = mysql_query($query2);
$affrows = mysql_affected_rows();
echo $query2.'<br><br>';

if ($affrows == 1) {
echo 'You have successfully been entered into a Public League.<br><br>';
}
} // end while
} else {
echo 'You have already entered the maximum of 5 leagues.<br><br>';
}
} // end while

// Check for spare leagues and add a new league if one cant be ounf that the user has not entered.
$query3 = "SELECT * FROM users WHERE user_id=$user_id LIMIT 1";
$result3 = mysql_query($query3);

while ($row3 = mysql_fetch_array($result3, MYSQL_ASSOC)) {
$query4 = "SELECT * FROM leagues WHERE league_id <> '{$row3['league_1']}' AND league_id <> '{$row3['league_2']}' AND league_id <> '{$row3['league_3']}' AND league_id <> '{$row3['league_4']}' AND league_id <> '{$row3['league_5']}' AND league_number_teams < 20 AND league_status = 'Public' ORDER BY league_id LIMIT 1";
$result4 = mysql_query($query4);
$num4 = mysql_num_rows($result4);

if ($num4 == 0) {
$query5 = "INSERT INTO leagues (league_name, league_status, league_number_teams) VALUES ('Public League', 'Public', '0')";
$result5 = mysql_query($query5);
$affrows5 = mysql_affected_rows();

if ($affrows5 == 0) {
$query6 = "INSERT INTO error_log (error, date_of_error, user_id, ipadd) VALUES ('9', NOW(), '$user_id', '{$_SERVER['REMOTE_ADDR']}')";
$result6 = mysql_query($query6);
}
}
} // end while[/code]

This i my 6th attempt, yet i get the same result as the previous 5.
When a user tries to enter a league, it enters into 2 leagues instead.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.