 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
12.10.2004, 06:57
|
#1
|
|
TP-Member
Registriert seit: Oct 2004
Ort: Köln
|
User Point
Guten Morgen euch allen,
ich weiß gar nicht wie ich richtig anfangen soll aber ich habe ein etwas größeres Problem. Ich kann PHP leider noch nicht so gut aber ich möchte etwas auf meiner HP anbieten. Jetzt wollt ich euch einfach mal fragen ob Ihr mir weiter helfen könnt.
Hier kommt mein Problem:
Ich möchte so ein Art Punktesystem einführen das heißt wenn z.B. ein User eine Seiten anklickt dann gibt’s ein Punkt für Ihn wenn er aber eine Private Nachricht schreibt z.B. dann gibt’s 2 Punkte und wenn er ein anderes Profil ansieht dann fibts drei Punkte.
Joa das waren eigentlich alle Punkte was es gibt’s. So nun habe ich in meiner Benutzerdatenbank eine Tabelle die heißt: Point. Da sollen jetzt einfach alle Punkte rein und zusammen gezählt werden. Aber wie kann ich das jetzt dem PHP beibringen, welche Seite was bringt und wie kann ich denn dann sagen trag mir das bitte in die Tabelle ein und erhöhe mir den Stand ?
Scheiße ich komm da einfach nicht weite. Ich siezte da jetzt schon seit ein paar Tagen dran und komme einfach nicht weiter. Kann mir bitte jemand helfen ?
LG süße_kleine_Mauß
|
|
|
12.10.2004, 09:08
|
#2
|
|
TP-Insider
Registriert seit: May 2003
Ort: Aachen
|
Nunja, ist eigentlich relativ einfach, wenn jemand ne nachricht schreibt, erhöhst du einfach den wert bei der Sender userid um 2. Wenn du dir ein Profil anguckst, das den ansehenden um 3 und so weiter..
wenn du die pkte in ner extratabelle einträgst, trägst du einfach bei jeder aktion die daten in ein neues feld ein, mit INSERT INTO und addierst nachher einfach alle werte deiner gesuchten userid mit SUM().
Oder du machst es mit einem extrafeld in der Usertabelle, das du zb. punkte nennst, und lässt den Wert immer mit UPDATE aktualisieren..
Ich würde die erste Variante nehmen, da sie dir weiter Optionen lässt, Punkte nur eine bestimmte Anzahl mal zu vergeben.
Dass man nicht 10000 mal auf ein Profil geht und dann 30000 pkte aufm Konto hat..
Ich hoffe ich konnte dir helfen
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein
|
|
|
12.10.2004, 09:29
|
#3
|
|
TP-Member
Registriert seit: Oct 2004
Ort: Köln
|
Hallo Loki,
danke für deine Antwort. Hmm ich weiß nicht ob ich die Version eins oder zwei nehmen soll. Jetzt mal angenommen ich nehme die Version 1 wie muss da dann die Tabelle in der Datenbank aussehen und wie kann ich dem PHP sagen, dass er wenn er z.B. eine Nachricht schreibt auch z.B. 2 Punkte vergibt und bei einem Profil ansehen 3 Punkte und einfach nur nee Seite ansieht 1 Punkt?
Kannst du mir da ein wenig helfen ? * mal ganz lieb frag mit großen Hundeaugen * :-)
LG süße_kleine_Maua
|
|
|
12.10.2004, 09:53
|
#4
|
|
TP-Insider
Registriert seit: May 2003
Ort: Aachen
|
Die Tabelle könnte dann so aussehen:
ID userid points whatfor
Und dann zb auf jeder Seite, die beim angucken einen Punkt geben soll
INSERT INTO points (userid,points,whatfor) VALUES ('".$_SESSION[userid]."',1,'pageview')
Entsprechend bei den anderen Seiten dann auch..
Helfen könnte ich dir theoretisch schon, hab aber im mom keinen Rechner, und habe im Institut, den Arsch voll Arbeit..
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein
|
|
|
12.10.2004, 10:00
|
#5
|
|
TP-Member
Registriert seit: Oct 2004
Ort: Köln
|
Hi Loki,
OK danke mal für das was du mir so geschrieben hast. Ich mach jetzt erst mal eine Tabelle in der Datenbank so wie du das oben geschrieben hast. Aber was ich noch nicht ganz verstehe wen ein User mit der gleichen ID dann eine andere Seite besucht legt er dann wieder was neues an oder zählt er dann eines nach oben? Also dass der Punktestand von jedem User immer höher wird ?
Dann noch was. Ich gebe die User nicht mit ID aus sonder mit NickName das heißt ich müsse dann in der Tabelle das wie folgt schreiben:
ID NickName points whatfor
Und dann der Code dazu muss dann so aussehen:
NSERT INTO points (NickName,points,whatfor) VALUES '".$_SESSION[NickName]."',1,'pageview')
Habe ich das soweit richtig verstanden. Na ja wenn du daheim oder wie auch immer mal wieder ein Rechner hast dann kannst dich ja auch mal via MSN oder ICQ bei mir melden wenn du das hast :-)
LG süße_kleine_Mauas
|
|
|
12.10.2004, 10:05
|
#6
|
|
TP-Insider
Registriert seit: May 2003
Ort: Aachen
|
Hab ICQ, das mit dem Rechner dauert noch was.. leider.
Hier im Inst kann ich kein ICQ nutzen, aber hier im Forum kann ich helfen, soweit es geht..
Wie du das oben gemacht hast, sieht das schon ganz gut aus.
Der fügt jetzt bei jeder Aktion einen neuen Eintrag in die Tabelle ein.
Und die musste dann nachher aufaddieren..
So kannste später noch Funktionen einbauen, die dir ermöglichen, dass es nur einmal Punkte für etwas gibt..
Du setzt am Besten noch eine timestamp spalte hinten dran, dann kann man auch eine Zeitlich Zuordnung gewährleisten 
__________________
"Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
Einstein
|
|
|
12.10.2004, 10:09
|
#7
|
|
TP-Member
Registriert seit: Oct 2004
Ort: Köln
|
HuHu,
Ok wie mach das dann mit dem TimeStamp? Wie heißt da dann noch die Spalte ( Zeit ) ? Da habe ich schon sehr viel gelesen also in Büchern nur verstanden habe ich das bis jetzt noch nie so richtig. Na ja aber dann wird die Tabelle ja sehr sehr groß wenn da mal einige User auf der Seite sind oder ?
und wie kann ich die dann alle zusammen rechnen lassen ?
Gruß süße_kleine_Maus
|
|
|
12.10.2004, 10:39
|
#8
|
|
TP-Member
Registriert seit: Oct 2004
Ort: Köln
|
HiHi Loki,
da bin ich nochmals:
Ok hab jetzt eine Tabelle angelgt die wie folgt aussieht:
CREATE TABLE `points` (
`id` int(11) NOT NULL auto_increment,
`nickname` varchar(30) NOT NULL default '',
`points` int(100) NOT NULL default '0',
`whatfor` varchar(100) NOT NULL default '',
`zeit` timestamp(14) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Dann bin ich auf meine Seite gegangen und habe den Code von dir wie folgt reingeschrieben:
PHP-Code:
<?php
NSERT INTO points (nickname,points,whatfor) VALUES '".$_SESSION[nickname]."',1,'pageview')
?>
Wenn ich das jetzt testen willst dann kommt folgende Meldung:
arse error: parse error, unexpected T_STRING in /home
Hmm habe ich ein Fehler drin?
LG süße_kleine_Maus
|
|
|
12.10.2004, 14:51
|
#9
|
|
Guest
Registriert seit: Aug 2002
|
Naja die Abfrage muss auch irgendwie an MySQL weitergeleitet werden, also mit mysql_query("Die Abfrage"):
PHP-Code:
// Verbindung aufbauen, DB auswählen
mysql_query("INSERT INTO points (nickname, points, whatfor) VALUES '".$_SESSION['nickname']."',1,'pageview'");
|
|
|
12.10.2004, 15:07
|
#10
|
|
TP-Member
Registriert seit: Oct 2004
Ort: Köln
|
Hi,
hmm jetzt geht es bzw. jetzt kommt mal keine Felhermeldung mehr aber er trägt nichts in die Tabelle in der Datenbank ein :-(
LG süße_kleine_Maus
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:16 Uhr.
|
 |