SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL/MySQLi

MySQL/MySQLi Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL/MySQLi diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 22.06.2010, 02:25:41
memcpy memcpy ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 31
Beiträge: 2
Hilfe bei einer Abfrage

Hallo,
für ein Uniprojekt stehe ich vor folgendem Problem:
Es handelt sich hier allgemein um ein Ratingsystem für Inhalte, die verschiedene User hochladen können. Da wir anhand der IP doppeltes Voting von Inhalten unterbinden wollen, verwenden wir eine extra Tabelle ip.

Es sind 4 Tabellen vorhanden:

1. user mit den spalten u_id,u_name,etc.

2. content mit c_id, c_user_id,etc. . Die Spalte c_user_id soll dabei ein Fremdschlüssel auf user.u_id sein.

3. thumb mit thumb_id,thumb_content,thumb_ip,thumb_rating. dabei ist thumb_content ein fremdschlüssel auf content.c_id.

4. ip mit ip_id,ip_ip

Wenn ein User einen Vote abgibt, wird zunächst überprüft, ob seine IP bereits ein Vote für content x abgegeben hat. Falls nicht, wird falls seine IP noch nicht in der ip-Tabelle ist, wird sie hinzugefügt, eine Referenz zu dieser IP in thumb.thumb_ip erstellt und thumb.rating mit 1 oder -1 belegt (je nachdem ob User Content gut oder schlecht fand).

Nun kommt das Problem mit der Abfrage. Es soll die Summe von thumb_rating ermittelt werden, die er durch all seine contents erreicht hat.

Ich kam bis zu folgendem Statement:

SELECT SUM(thumb.thumb_rating) AS count,u_name FROM user
INNER JOIN content ON user.u_id = content.c_user_id
INNER JOIN thumb ON thumb.thumb_content = content.c_id
GROUP BY user.u_name
ORDER BY count desc;

Jedoch wird nur die Summe der thumb_rating Werte von einem Eintrag in der content-Tabelle errechnet. Wir müssen aber über alle content Einträge die Summe wissen.
Ist das überhaupt möglich oder ist meine DB-Design Müll ?

Hier nochmal zum selber probieren:

Hallo,
für ein Uniprojekt stehe ich vor folgendem Problem:
Es handelt sich hier allgemein um ein Ratingsystem für Inhalte, die verschiedene User hochladen können. Da wir anhand der IP doppeltes Voting von Inhalten unterbinden wollen, verwenden wir eine extra Tabelle ip.

Es sind 4 Tabellen vorhanden:

1. user mit den spalten u_id,u_name,etc.

2. content mit c_id, c_user_id,etc. . Die Spalte c_user_id soll dabei ein Fremdschlüssel auf user.u_id sein.

3. thumb mit thumb_id,thumb_content,thumb_ip,thumb_rating. dabei ist thumb_content ein fremdschlüssel auf content.c_id.

4. ip mit ip_id,ip_ip

Wenn ein User einen Vote abgibt, wird zunächst überprüft, ob seine IP bereits ein Vote für content x abgegeben hat. Falls nicht, wird falls seine IP noch nicht in der ip-Tabelle ist, wird sie hinzugefügt, eine Referenz zu dieser IP in thumb.thumb_ip erstellt und thumb.rating mit 1 oder -1 belegt (je nachdem ob User Content gut oder schlecht fand).

Nun kommt das Problem mit der Abfrage. Es soll die Summe von thumb_rating ermittelt werden, die er durch all seine contents erreicht hat.

Ich kam bis zu folgendem Statement:

SELECT SUM(thumb.thumb_rating) AS count,u_name FROM user
INNER JOIN content ON user.u_id = content.c_user_id
INNER JOIN thumb ON thumb.thumb_content = content.c_id
GROUP BY user.u_name
ORDER BY count desc;

Jedoch wird nur die Summe der thumb_rating Werte von einem Eintrag in der content-Tabelle errechnet. Wir müssen aber über alle content Einträge die Summe wissen.
Ist das überhaupt möglich oder ist meine DB-Design Müll ?

Hallo,
für ein Uniprojekt stehe ich vor folgendem Problem:
Es handelt sich hier allgemein um ein Ratingsystem für Inhalte, die verschiedene User hochladen können. Da wir anhand der IP doppeltes Voting von Inhalten unterbinden wollen, verwenden wir eine extra Tabelle ip.

Es sind 4 Tabellen vorhanden:

1. user mit den spalten u_id,u_name,etc.

2. content mit c_id, c_user_id,etc. . Die Spalte c_user_id soll dabei ein Fremdschlüssel auf user.u_id sein.

3. thumb mit thumb_id,thumb_content,thumb_ip,thumb_rating. dabei ist thumb_content ein fremdschlüssel auf content.c_id.

4. ip mit ip_id,ip_ip

Wenn ein User einen Vote abgibt, wird zunächst überprüft, ob seine IP bereits ein Vote für content x abgegeben hat. Falls nicht, wird falls seine IP noch nicht in der ip-Tabelle ist, wird sie hinzugefügt, eine Referenz zu dieser IP in thumb.thumb_ip erstellt und thumb.rating mit 1 oder -1 belegt (je nachdem ob User Content gut oder schlecht fand).

Nun kommt das Problem mit der Abfrage. Es soll die Summe von thumb_rating ermittelt werden, die er durch all seine contents erreicht hat.


Hier das der Aufbau der Tabellen:

CREATE TABLE `user` (
`u_id` int(11) NOT NULL AUTO_INCREMENT,
`u_name` char(16) NOT NULL DEFAULT '',
`u_pass` char(32) NOT NULL DEFAULT '',
`u_email` char(150) NOT NULL DEFAULT '',
`u_session` char(32) DEFAULT NULL,
`u_ip` char(32) DEFAULT NULL,
`u_active` tinyint(1) DEFAULT '0',
`u_regcode` int(8) DEFAULT '0',
`u_gender` int(3) DEFAULT '1',
`u_birtday` date DEFAULT NULL,
PRIMARY KEY (`u_id`),
UNIQUE KEY `NickName` (`u_name`),
UNIQUE KEY `UserMail` (`u_email`),
KEY `u_gender` (`u_gender`)
) ENGINE=MyISAM AUTO_INCREMENT=2147483648 DEFAULT CHARSET=latin1;


CREATE TABLE `content` (
`c_id` int(11) NOT NULL AUTO_INCREMENT,
`c_user_id` int(11) NOT NULL,
`c_title` char(40) NOT NULL DEFAULT '',
`c_description` char(200) NOT NULL DEFAULT '',
`c_path` char(200) NOT NULL DEFAULT '',
`c_thumbpath` char(200) NOT NULL DEFAULT '',
`c_date` datetime DEFAULT NULL,
`c_deleted` tinyint(1) DEFAULT '0',
`c_tags` int(11) DEFAULT NULL,
`c_views` int(11) DEFAULT '1',
`c_rating` int(11) DEFAULT '0',
`c_mediatype` int(11) NOT NULL,
PRIMARY KEY (`c_id`),
KEY `c_author` (`c_user_id`),
KEY `c_mediatype` (`c_mediatype`)
) ENGINE=MyISAM AUTO_INCREMENT=58 DEFAULT CHARSET=latin1;


CREATE TABLE `thumb` (
`thumb_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`thumb_content` int(10) unsigned NOT NULL,
`thumb_ip` int(10) unsigned NOT NULL,
`thumb_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`thumb_rating` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`thumb_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

CREATE TABLE `ip` (
`ip_id` int(11) NOT NULL AUTO_INCREMENT,
`ip_ip` char(15) NOT NULL,
PRIMARY KEY (`ip_id`),
UNIQUE KEY `ip_ip` (`ip_ip`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;


Ich kam bis zu folgendem Statement:

SELECT SUM(thumb.thumb_rating) AS count,u_name FROM user
INNER JOIN content ON user.u_id = content.c_user_id
INNER JOIN thumb ON thumb.thumb_content = content.c_id
GROUP BY user.u_name
ORDER BY count desc;

Jedoch wird nur die Summe der thumb_rating Werte von einem Eintrag in der content-Tabelle errechnet. Wir müssen aber über alle content Einträge die Summe wissen.
Ist das überhaupt möglich oder ist meine DB-Design Müll ?
Mit Zitat antworten
  #2  
Alt 22.06.2010, 08:47:58
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.680
AW: Hilfe bei einer Abfrage

Hallo und willkommen hier im Forum.

Dir ist aber schon bekannt, dass die IP-Adresse keine eindeutige Zuordnung zu einem User ist/ermöglicht (zum Beispiel AOL, etc.) - oder?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 22.06.2010, 13:02:14
memcpy memcpy ist offline
Anfänger
 
Registriert seit: Jun 2010
Alter: 31
Beiträge: 2
AW: Hilfe bei einer Abfrage

Zitat:
Zitat von vt1816 Beitrag anzeigen
Hallo und willkommen hier im Forum.

Dir ist aber schon bekannt, dass die IP-Adresse keine eindeutige Zuordnung zu einem User ist/ermöglicht (zum Beispiel AOL, etc.) - oder?
Das stimmt. Ich benötige aber die IP, um mehrfache Votes zu unterbinden, da auch anonyme User voten können.
Mit Zitat antworten
  #4  
Alt 22.06.2010, 15:00:39
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.680
AW: Hilfe bei einer Abfrage

Zitat:
Zitat von memcpy Beitrag anzeigen
Das stimmt. Ich benötige aber die IP, um mehrfache Votes zu unterbinden, da auch anonyme User voten können.
Damit verhinderst Du aber auch den Zugriff von Leuten die hinter einem Proxy leben (Großfirmen, Uni, etc.).

Denkmal drüber nach ...
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe bei Abfrage... iamgodx MySQL/MySQLi 5 09.06.2009 12:26:10
Abfrage funktionierte gestern noch, brauche Hilfe!! Lins56 PHP Grundlagen 2 18.10.2007 19:17:39
If abfrage hilfe DelphiDell PHP Grundlagen 2 17.05.2005 02:36:42
Problem mit einer Abfrage für eine Suchoption. Bitte um schnelle Hilfe!!! Fabian85 MySQL/MySQLi 1 21.04.2004 17:12:13
Benötige Hilfe für dyn. Abfrage mittles PHP Trialrider PHP für Fortgeschrittene und Experten 70 09.10.2003 11:08:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:03:26 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.


© 2001-2021 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt