Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Wiederholung eines Wertes verhindern [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Wiederholung eines Wertes verhindern


 
Kaffi
02-04-2002, 15:10 
 
Also ich möchte folgendes machen:

Eine Liste der höchsten Einträge aller User, vom höchsten zum niedrigsten sortiert - nur in der Tabelle stehen mehrere Werte eines Users und jeder soll nur einmal in der Liste vorkommen.

>> SELECT userid,wert FROM table ORDER BY wert DESC <<

So habe ich es jetzt - nun müsste ich verhindern, dass wenn ein Wert für eine userid genommen wurde, keine weiteren Werte mehr für diese userid selectiert werden - oder könnte ich dass nur mit einem php script möglich (wenn ja - wie) ???


Danke schon mal für eure Hilfe...

 
Kaffi
02-04-2002, 15:23 
 
also momentan mache ich es jetzt so im php-script in der while-schleife :


if (!$wdh[$userid])
{
$wdh[$userid] = $userid;
...
}

finde das aber etwas unschön...

 
Troublegum
03-04-2002, 01:17 
 
Ich glaube, so gehts..
SELECT DISTINCT userid,wert FROM table ORDER BY wert DESC

 
Kaffi
03-04-2002, 02:06 
 
DISTINCT habe ich garnicht in meiner Befehlsliste - sieh an...

Ich werde es gleich mal ausprobieren - Vielen Dank schon mal für deine Antwort!

 
Kaffi
05-04-2002, 07:47 
 
Leider geht es so nicht :(

 
JoelH
05-04-2002, 08:30 
 
Haste das mal mittels GROUP BY probiert ?

SELECT userid FROM tab GROUP BY userid ORDER BY wasweissich DESC

 
KinNeko
05-04-2002, 08:38 
 
Ein paar Fragen..
1. Jedem User soll nur ein wert zugewiesen werden ?
2. Und das soll der erste wert in der Tabelle sein ? (Denk daran dass die NICHT sotiert sind..deswegen gibt es ja ORDER BY)

Gib mal bitte ein paar Beispiele an..
allerdings mit einem SQL Befehl wird es nicht gehen..ohne verschachtelte Anfragen kommt man nicht weit.

SELECT DISTINCT userid,wert FROM table ORDER BY wert DESC
Das DISTINCT bezieht sich hier auf das paar aus userid und wert..jedes paar! wird nur einmal ausgegeben.

PS.: Ein paar Anfragen die nützlich sein könnten..

SELECT DISTINCT userid FROM table
Liefert eine Liste aller UserID (unique)

PPS.: Versuch mal erst alle UserIDs DISTINCT zu selecten..
dann in einer Schleifen dafür alle Wert ORDER BY zu selectieren und vom ergebnis nur das erste zu nehmen (also keine Ergebnisschleife)
Ist zwar sehr ineffektiv aber könnte klappen..
..ansonsten könnte ich heute abend auch Code posten.

 
Titus
05-04-2002, 10:26 
 
SELECT userid, max(wert) FROM table GROUP BY userid ORDER BY wert DESC

 
KinNeko
05-04-2002, 12:19 
 
Original geschrieben von Titus
SELECT userid, max(wert) FROM table GROUP BY userid ORDER BY wert DESC

Ordnet die Anfragen nicht jeder UserID den maximalen Wert zu ?

 
Kaffi
07-04-2002, 18:58 
 
Hm, danke Leute, es will nichts wie ich es will, daher habe ich es jetzt über das Script geregelt...

 
MelloPie
07-04-2002, 19:10 
 
Also das SQL von Titus is doch genau das was Du brauchst. Wenn das net klappt hast Du irgendein anderes problem...


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:33 Uhr.