![]() |
Jag har ett problem med mitt röstningsscript i mysql.
itemVotes räknar alla röster till sammans, tex om 50 personer röstat 3 blir det 50*3 itemVoters är antal som röstat itemRating är itemVotes/itemVoters Jag gör så här om någon tex röstar 4: Kod:
UPDATE table SET `itemVotes` = `itemVotes`+4, `itemVoters`=`itemVoters`+1,`itemRating` = (`itemVotes`)/(`itemVoters`) WHERE `itemID` = 'något id' |
vad får du för felmeddelande då?
blir det räknemässiga fel eller helt andra fel? när du ska addera på en variabel med värdet på personens röst, har du kommit ihåg att göra den till Integer ifall det inte redan är bestämt när du definierade variabeln? Vad händer om du har en egen UPDATE för itemRating? Osäker på om itemvotes och itemvoters hinner uppdateras om du kör alla på rad.. men som sagt, posta gärna felmeddelande så kan nog någon få rätsida på dina problem. |
Problemet är att det blir helt fel summor.
itemVotes int(10) itemVoters int(10) itemRating float(10,1) Jag har testat med det här: Kod:
UPDATE table SET `itemVotes` = `itemVotes`+4, `itemVoters`=`itemVoters`+1,`itemRating` = (`itemVotes`+4)/(`itemVoters`+1) WHERE `itemID` = 'något id' |
Henrik, eftersom det inte synes vara något fel på din SQL-sats så måste du berätta vad som blir fel. Ange vilket resultat du förväntar dig och vad resultatet blir!
|
Ett spel har 1 röst, som är 4.
Jag röstar 3, resultatet blir 3,6 |
Inte för att jag förstår varför det blir fel eller tänker lägga tid på att undersöka orsaken, men varför räkna ut medelvärdet över huvud taget i tabellen? Jag tvivlar på att du har sådana performanceproblem så du inte har råd med en division i de fall du behöver rating-värdet.
|
Kontrollera siffrorna i databasen när du lägger in värden så ser du nog precis var det blir fel.
|
Citat:
|
Citat:
|
Citat:
Kod:
UPDATE table SET `itemVotes` = `itemVotes`+3, `itemVoters`=`itemVoters`+1,`itemRating` = (`itemVotes`)/(`itemVoters`) WHERE `itemID` = 'något id' |
Alla tider är GMT +2. Klockan är nu 05:10. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson