micmania1 Posted January 19, 2007 Share Posted January 19, 2007 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_idleague_iduser_idIf 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 More sharing options...
micmania1 Posted January 19, 2007 Author Share Posted January 19, 2007 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] Link to comment https://forums.phpfreaks.com/topic/34887-adding-a-user-to-a-public-league/#findComment-164508 Share on other sites More sharing options...
micmania1 Posted January 19, 2007 Author Share Posted January 19, 2007 *bump* Link to comment https://forums.phpfreaks.com/topic/34887-adding-a-user-to-a-public-league/#findComment-164677 Share on other sites More sharing options...
micmania1 Posted January 20, 2007 Author Share Posted January 20, 2007 bump Link to comment https://forums.phpfreaks.com/topic/34887-adding-a-user-to-a-public-league/#findComment-164926 Share on other sites More sharing options...
micmania1 Posted January 20, 2007 Author Share Posted January 20, 2007 [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. Link to comment https://forums.phpfreaks.com/topic/34887-adding-a-user-to-a-public-league/#findComment-164936 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.