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 > MySQLi/PDO/(MySQL)

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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.05.2006, 15:44:41
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
Reinfi eine Nachricht über ICQ schicken
Gegenteil bekommen

Hallo!

Ich habe einen Spielplaner, in dem Spiele eingetragen werden und die Benutzer voten, ob sie an dem Termin Zeit haben oder nicht.

Das heisst es gibt 2 Arten von Status
gevotet => DB Eintrag vorhanden
nicht gevotet => kein DB Eintrag vorhanden

Nun möchte ich nur die User herausbekommen, die noch nicht bei einem Spiel gevotet haben.

Vorher hab ich dies über 2 Selects gemacht, was aber umstöndlich ist.

Mein Versuch war nun folgender:

PHP-Code:
SELECT sylius_user. *
FROM spielplaner
LEFT JOIN sylius_user ON spielplaner
.posterid sylius_user.Id
WHERE timestamp 
=1144144800
AND spielplaner.status 'VOTE' 
Dies liefert ein wunderbares Ergebnis und zwar genau die Leute die bereits gevotet haben. Jetzt hab ich schon alles ausprobiert mit Verneinung und sowas aber ich kriege einfach nicht das andere Ergebnis. Mit Subselects kann ich aufgrund meiner mySQL Version leider nicht arbeiten.

Hoffe ich habe alles verständlich erklärt.

Martin
Mit Zitat antworten
  #2  
Alt 05.05.2006, 00:02:47
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Gegenteil bekommen

das funktioniert ?
PHP-Code:
WHERE timestamp =1144144800
AND spielplaner.status 'VOTE' 
das funktioniert NICHT ????
PHP-Code:
WHERE timestamp =1144144800
AND spielplaner.status != 'VOTE' 
das gegenteil rauskommen oder sehe ich da was falsch.

entweder du hast danach noch code, der ein ergebnis verhindert oder du hast da was falsch gemacht.
Mit Zitat antworten
  #3  
Alt 05.05.2006, 07:48:17
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
Reinfi eine Nachricht über ICQ schicken
AW: Gegenteil bekommen

Nein, deine Idee zeigt mir nicht die User an, die noch nicht gevotet haben, dass zeigt mir dann nur den User an, der den Status "MAIN" hat, weil er der Ersteller des Spieles ist.

Also gibt es anscheinend keine ordentliche Lösung :)
Mit Zitat antworten
  #4  
Alt 05.05.2006, 08:43:42
diver-network diver-network ist offline
Junior Member
 
Registriert seit: Apr 2003
Ort: TÜ
Beiträge: 337
AW: Gegenteil bekommen

Hi,

was mir sofort ins Auge sticht ist Deine Einschränkung bzgl. TIMESTAMP.
Wenn Dein Ergebnis nicht genau dem gewünschten Timestamp entspricht wird auch jede Kombination (egal ob mit AND = oder AND != ) keinen Treffer liefern.

Wenn Du also den Timestamp für Deine Auswahl nicht benötigst lass diese Bedingung weg und es sollte funktionieren.
Alternativ versuch, den Zeitraum möglichst groß zu machen.

HTH,

Andy
Mit Zitat antworten
  #5  
Alt 05.05.2006, 11:35:53
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Gegenteil bekommen

Zitat:
Zitat von Reinfi
Nein, deine Idee zeigt mir nicht die User an, die noch nicht gevotet haben, dass zeigt mir dann nur den User an, der den Status "MAIN" hat, weil er der Ersteller des Spieles ist.

Also gibt es anscheinend keine ordentliche Lösung :)
es gibt definitiv eine lösung :-) man muss nur wissen, wie man mit den werkzeugen die man hat zu dem kommt, was man will. gib uns doch mal so etwa 10-50 datensätze aus jeder tabelle, bei denen sowohl beim abfragen wer gevoted hat was sinnvolles rauskommt als auch beim gegenteil...dann kann ich das mal lokal testen.
Mit Zitat antworten
  #6  
Alt 05.05.2006, 11:37:52
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Gegenteil bekommen

noch ein kleiner nachtrag: du willst nur die spieler, die noch nie bei einem spiel gevoted haben? oder willst du pro spiel die spieler, die bei diesem spiel noch nicht gevoted haben?
Mit Zitat antworten
  #7  
Alt 05.05.2006, 12:18:50
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
Reinfi eine Nachricht über ICQ schicken
AW: Gegenteil bekommen

Also mein Spiel wird über den Timestamp eindeutig bestimmt. Daher benötige ich diese Einschränkung auf jeden Fall.

Dann hab ich also mein Spiel mit dem exakten Timestamp zugeordnet.

Nun kommt meine Userliste ins Spiel, welche alle aktuellen Benutzer enthält.

Ich möchte nun alle die User haben, die bei exakt dem Spiel noch nicht gevotet haben. Das heisst sie haben keinen DB-Eintrag im Spielplaner.

Aufbau der Tabelle 'spielplaner'

id - timestamp - status - ... - posterid

1 - 1000000 - MAIN - ... - 12
2 - 1000000 - VOTE - ... - 12
3 - 1000000 - VOTE - ... - 23
4 - 1000000 - VOTE - ... - 42
5 - 1000000 - VOTE - ... - 54
6 - 1000000 - VOTE - ... - 32
7 - 1000000 - VOTE - ... - 15
8 - 1000000 - VOTE - ... - 10

Aufbau der Tabelle 'sylius_user'
id - name - ...
10 - Hans
12 - Michi
23 - Nils
42 - Manni
54 - Jochen
32 - Holger
15 - Knut
18 - Inge
27 - Martin
39 - Raphael
40 - Sebi

Nun kann ich ja über den timestamp den Eintrag ansprechen und möchte nun aus meiner Liste, die User haben die noch keinen Vote zum Spiel abgegeben haben. Das heisst ich möchte gerne ein Resultat haben, welches mir folgendes liefert.

18 - Inge
27 - Martin
39 - Raphael
40 - Sebi

Hoffe nun ist es ganz klar.
Mit Zitat antworten
  #8  
Alt 05.05.2006, 15:54:34
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Gegenteil bekommen

Zitat:
If there is no matching row for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table. You can use this fact to find rows in a table that have no counterpart in another table: [...]
http://dev.mysql.com/doc/refman/5.0/en/join.html

Code:
SELECT
    u.id,
    u.name
FROM
    sylius_user AS u
LEFT JOIN
    spielplaner AS s
ON
    u.id = s.posterid
WHERE
    s.`timestamp` = 10000000 AND
    s.posterid IS NULL

Geändert von xabbuh (05.05.2006 um 16:32:25 Uhr)
Mit Zitat antworten
  #9  
Alt 05.05.2006, 16:28:18
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
Reinfi eine Nachricht über ICQ schicken
AW: Gegenteil bekommen

Das hatte ich bereits gefunden, aber gibt keine Lösung, denn es findet dann gar keine Ergebnisse mehr
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
gegenteil von DISTINCT Gweilo MySQLi/PDO/(MySQL) 9 12.08.2004 10:50:08
Gegenteil von strstr fransko PHP für Fortgeschrittene und Experten 5 19.11.2003 17:57:39
dynamisches "entfernen" von Pulldown-Menüs Drosi PHP für Fortgeschrittene und Experten 7 07.06.2003 16:51:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:30:19 Uhr.


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


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