diff --git a/pyfpdb/fpdb_simple.py b/pyfpdb/fpdb_simple.py index 2c432c75..aa0b2e9f 100644 --- a/pyfpdb/fpdb_simple.py +++ b/pyfpdb/fpdb_simple.py @@ -1393,19 +1393,33 @@ def recogniseTourneyTypeId(cursor, siteId, buyin, fee, knockout, rebuyOrAddon): # then this can be reduced in complexity a bit def recognisePlayerIDs(cursor, names, site_id): - cursor.execute("SELECT name,id FROM Players WHERE name='%s'" % "' OR name='".join(names)) # get all playerids by the names passed in - ids = dict(cursor.fetchall()) # convert to dict - if len(ids) != len(names): - notfound = [n for n in names if n not in ids] # make list of names not in database - if notfound: # insert them into database - cursor.executemany("INSERT INTO Players (name, siteId) VALUES (%s, "+str(site_id)+")", (notfound)) - cursor.execute("SELECT name,id FROM Players WHERE name='%s'" % "' OR name='".join(notfound)) # get their new ids - tmp = dict(cursor.fetchall()) - for n in tmp: # put them all into the same dict - ids[n] = tmp[n] - - # return them in the SAME ORDER that they came in in the names argument, rather than the order they came out of the DB - return [ids[n] for n in names] + result = [] + for i in xrange(len(names)): + cursor.execute ("SELECT id FROM Players WHERE name=%s", (names[i],)) + tmp=cursor.fetchall() + if (len(tmp)==0): #new player + cursor.execute ("INSERT INTO Players (name, siteId) VALUES (%s, %s)", (names[i], site_id)) + #print "Number of players rows inserted: %d" % cursor.rowcount + cursor.execute ("SELECT id FROM Players WHERE name=%s", (names[i],)) + tmp=cursor.fetchall() + #print "recognisePlayerIDs, names[i]:",names[i],"tmp:",tmp + result.append(tmp[0][0]) + return result + +#def recognisePlayerIDs(cursor, names, site_id): +# cursor.execute("SELECT name,id FROM Players WHERE name='%s'" % "' OR name='".join(names)) # get all playerids by the names passed in +# ids = dict(cursor.fetchall()) # convert to dict +# if len(ids) != len(names): +# notfound = [n for n in names if n not in ids] # make list of names not in database +# if notfound: # insert them into database +# cursor.executemany("INSERT INTO Players (name, siteId) VALUES (%s, "+str(site_id)+")", (notfound)) +# cursor.execute("SELECT name,id FROM Players WHERE name='%s'" % "' OR name='".join(notfound)) # get their new ids +# tmp = dict(cursor.fetchall()) +# for n in tmp: # put them all into the same dict +# ids[n] = tmp[n] +# +# # return them in the SAME ORDER that they came in in the names argument, rather than the order they came out of the DB +# return [ids[n] for n in names] #end def recognisePlayerIDs