Avatar billede dab93 Nybegynder
01. maj 2011 - 14:56 Der er 22 kommentarer og
1 løsning

Point system med PHP og MySQL

Kære eksperter.

Nu programmere jeg en hel del PHP, og bruger MySQL. Jeg vil gerne udvide min viden omkring PHP verdenen, og derfor ville jeg hører om der var nogle der ville forklare mig hvordan man opsætter et point system.

Jeg benytter mig af min egen form for opstilling på mine sider, derfor er det svært at forklare hvordan jeg sætter hjemmesider op.

Lige nu programmere jeg på min egen blog, og har ikke så meget brug for at point system på min blog, men senere hen kunne det godt være at jeg ville bruge det, og derfor ville jeg gerne lærer om det.

På forhånd mange tak. Jeg udlover 60 point til den som giver mig et konkret svar som er nyttigt, og som jeg kan bruge.
Avatar billede heinzdmx Nybegynder
01. maj 2011 - 15:47 #1
Der er tonsvis af af tutorials rundt omkring på nettet omkring rating systems.

En Google søgning kan give dig mange sider:

http://www.google.dk/search?q=PHP+Rating+Tutorial

Hvis du vil gøre det ekstra lækkert (måske ikke så egnet for nybegyndere) så prøv også at kigge på at lave det med ajax.
Avatar billede dab93 Nybegynder
01. maj 2011 - 15:54 #2
#1
Nu mener jeg et point system som f.eks. når man har et bruger system, så brugerne kan få point's, ligesom her på eksperten.dk.
Avatar billede heinzdmx Nybegynder
01. maj 2011 - 16:38 #3
Ahh javel :)

Det er der skam også meget om:
http://www.google.dk/search?q=Point+System+PHP

Har fundet et eksempel her (har ikke selv kigget på det, men du kunne jo få nogle ideer):

http://www.phpuniverset.dk/show_source.phtml?script_id=120
Avatar billede dab93 Nybegynder
01. maj 2011 - 16:47 #4
#3
Jeg har kigget på begge links. Det første har jeg i forvejen kigget på, og den anden virker ikke, altså den download, for den har jeg prøvet at downloade før. Det er ret irriterende. Jeg har nogle fornemmelser af hvordan man gør, men jeg er ikke sikker, derfor spørger jeg :).

Men tak for dit svar. Hvis du finder noget mere specifikt så skriv, vil gerne lærer lidt om det :).
Avatar billede dab93 Nybegynder
02. maj 2011 - 19:25 #5
Jeg har fået et nogenlunde svar på udvikleren.dk, og det vil jeg gerne dele med jer:

Han ville ikke give direkte kode, men en forståelse for hvordan man gør.
$sql = "UPDATE brugere SET point = point - $antalpoint WHERE id='$_SESSION[userid]'";
mysql_query($sql);
$sql2 = "UPDATE brugere SET point = point + $antalpoint WHERE id='$givenUser'";
mysql_query($sql2);


Håber at i kan bruge det til noget, for jeg skal afprøve det. Men jeg sætte stadig de 60 point til rådighed hvis der er nogle der kan komme med mere brugbart kode, og flere informationer som er direkte. Men hvis jeg ikke får et bedre svar, så trækker jeg desværre de point tilbage :).
Avatar billede repox Seniormester
03. maj 2011 - 11:05 #6
Hvad er 'brugbar kode'? Hvad er det du forventer? At der er nogen der kommer med en færdig løsning du kan implementere og bare ændre lidt design? Ellers må du være mere konkret i din problem-stilling.

Meningen med eksperten.dk er hjælp til selvhjælp - hvis du vil have noget færdigt må du udvikle din Google-fu eller frem med læderet.

Da du ikke selv vil linke til tråden på udvikleren.dk kan jeg gøre det for dig: http://www.udvikleren.dk/forum/34262/point-system-med-php-og-mysql/
Avatar billede dab93 Nybegynder
03. maj 2011 - 22:08 #7
#6
Jeg forventer ikke en færdig kode? Jeg spørger efter om der er nogle der har lidt mere indhold i svaret. Hvorfor skal du brokke dig i alle mine indlæg? Er meningen med at man indsender et spørgsmål ikke at man får hjælp? Jeg har ikke bedt om en diskussion, men om en slags "debat". Du render mig i røven og vil have at jeg skal gøre alt perfekt?
Avatar billede repox Seniormester
04. maj 2011 - 09:40 #8
Jeg stiller dig et par konkrete spørgsmål, som du kvitterer for med sætningen "Du render mig i røven og vil have at jeg skal gøre alt perfekt?" - hvis det er den måde du har tænkt dig at kommunikere på fremover, så garanterer jeg dig for at du ikke får det meget nemmere fra nogle af de andre brugere.

Essensen er at heinzdmx har forsøgt at hjælpe dig - din respons er at svaret ikke er fyldestgørende.
Du har heller ikke gjort yderligere ved din tråd på udvikleren.dk andet end at videregive en oplysning uden kontekst til os her - du slutter derefter af med at sige at du stadig mangler et 'bedre svar', for ellers vil du 'trække dine point tilbage' (bare rolig, så pointliderlige er vi heller ikke).

Ergo må du opdatere din problemstilling for os og være mere konkret og uddybende. Dit spørgsmål er for vagt/bredt eftersom det ikke kan besvares med den blotte idé eller nogle forslag fra Google.

Jeg forventer ikke at du 'gør alt perfekt' - jeg forventer at du gør noget for at hjælpe dig selv. Så fald du bare ned og slap af.

Du har nu muligheden for at udvikle dig - snak pænt, svar på vores spørgsmål og du vil få den respons som du efterlyser.

Du har også muligheden for at besværliggøre det yderligere for dig selv, ved at fortsætte med at bitche over lidt modgang...
Avatar billede dab93 Nybegynder
04. maj 2011 - 11:46 #9
#8
Du benytter dig af muligheden for nærmest at "nedgøre" mig i en af mine guides, så det er ikke den måde du skriver i det her spørgsmål, kun. Det er bare den måde du udtaler dig på overfor mig.

Men ja ja, så trækker jeg mine point tilbage hvis du ikke fatter hvad jeg mener.
Avatar billede repox Seniormester
04. maj 2011 - 11:52 #10
#9
Endnu engang missede du hele pointen...
Held og lykke med din færd fremover på eksperten.dk - den bliver vist ikke bedre for dig med din indstilling.
Avatar billede dab93 Nybegynder
04. maj 2011 - 17:32 #11
#10
Jeg ved godt at du retter på mig pga. min udtagelse, og hvordan jeg formulere mit spørgsmål. Men når du mener at jeg er amatør, uden du ved hvad jeg kan, så gider jeg sådan set ikke høre på din udtagelse. Vil gerne hvis du formulere din kommentar bare en lille smugle positivt.

Nu har jeg lukket muligheden for at modtage point pga. dig, så håber at du er glad nu. Skal nok prøve at udtale mig anderledes, men så lad være med at blive ved med at rette på mig.
Avatar billede repox Seniormester
04. maj 2011 - 18:14 #12
Hvis du nu holdte op med at tage alting så højtideligt og indså at du, ligesom jeg selv, altid kan lære mere,vil vores kommunikation hurtigtog blive lettere - meget endda!

I øvrigt vil jeg gerne bede dig om ikke at lægge ord i munden på mig - jeg har ikke kaldt dig for en amatør - blot sagt at du mangler erfaring. At du sidestiller de to skal ikke gøres til mit problem.

Hvis du nu startede med at acceptere at der altid vil findes mennesker som er væsentlig dygtigere end dig og selvsamme mennesker vil også have en mening om det du offentliggører, hvadenten du kan lide den eller ej, vil du hurtigt få det meget nemt her - samtidig med lidt personlig udvikling.
Avatar billede dab93 Nybegynder
04. maj 2011 - 18:26 #13
#12
Jeg har accepteret for længe siden at der er folk med meget større erfaring end mig. Men kan godt se hvad du mener, jeg tager tit ting for personligt, og det undskylder jeg for.

Men vil gerne have sat en streg over det her, for har været meget provokeret af det.
Avatar billede heinzdmx Nybegynder
04. maj 2011 - 21:36 #14
Så siger vi at vi er startet på en frisk.

Når vi så tager hensyn til #5 vil jeg stille spørgsmålet, hvad skal du have hjælp til?

#5 kan kører 2 ting, trække point fra og lægge point til

Så skal du jo bare lave en simpel SELECT til at få pointene ud.
Avatar billede dab93 Nybegynder
04. maj 2011 - 22:13 #15
Ja, men vil gerne have bygget det sådan at man bestemmer lige nøjagtigt hvem der får point, f.eks. ligesom i sådan et indlæg som her :)
Avatar billede heinzdmx Nybegynder
04. maj 2011 - 22:19 #16
Det første du skal gøre er at lave en måde for brugeren at vælge hvilken bruger der skal have point, det være sig en <select> og dertilhørende value eller en textbox

Dernæst skal du bruge #5

$UserName = mysql_real_escape_string($_POST['username'])
$sql2 = "UPDATE brugere SET point = point + $antalpoint WHERE id='$UserName'";
mysql_query($sql2);


Det kræver så bare at din form har en form for input med name sat til username.
Avatar billede dab93 Nybegynder
05. maj 2011 - 07:10 #17
#16
Det sidste du skrev, der kan man jo bare skrive
<input type="hidden" name="username" value="<?php echo $row['username']; ?>" />


Men hvorfor skal man skrive mysql_real_escape_string i det øverste kode du har skrevet?
Avatar billede heinzdmx Nybegynder
05. maj 2011 - 14:17 #18
1. Der er intet behov for et hidden input field.
Du skal jo have fat i et brugernavn, dette kan du f.eks. gøre med en select (rulleliste med brugere, eller et felt hvor brugeren kan skrive brugernavnet

2. For at sikre mod SQL-Injections
Avatar billede dab93 Nybegynder
05. maj 2011 - 15:23 #19
Lige nu har jeg bare sat det sådan her op:
$sql = "UPDATE users SET point = point - $point WHERE id='". $_SESSION['id'] ."' ";
mysql_query($sql);
$sql2 = "UPDATE users SET point = point + $point WHERE id='". $_GET['id'] ."' ";
mysql_query($sql2);


Det virker, men der er lidt der skal rettes :)
Avatar billede heinzdmx Nybegynder
05. maj 2011 - 17:23 #20
Tag nu og brug mysql_real_escape_string ellers kan en person slette hele din database ved at lave en url på en bestemt måde.
Avatar billede dab93 Nybegynder
05. maj 2011 - 18:50 #21
Hvor skal jeg smide den ind henne?
$sql = "UPDATE users SET point = point - $point WHERE id='". mysql_real_escape_string($_SESSION['id']) ."' ";
mysql_query($sql);
$sql2 = "UPDATE users SET point = point + $point WHERE id='". mysql_real_escape_string($_GET['id']) ."' ";
mysql_query($sql2);


Sådan?
Avatar billede heinzdmx Nybegynder
05. maj 2011 - 18:57 #22
Avatar billede dab93 Nybegynder
06. maj 2011 - 08:30 #23
Tusind tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester