php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.04.2006, 17:59  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard Reihe finden die eine bestimmte Bedingung erfüllt

Nachdem ich nun meine Berechnung erfolgreich durchgeführt habe, stellt sich noch ein Problem an:

Ich erstelle eine Toplist. Bei der Ausgabe gibt es mehrere Modis:
1. die besten 20. Ok das ist kein Problem.
2. Ab einer bestimmten Position X User, auch kein Problem mit Limit n,m
3. Ich suche nach einem User und stelle den in die mitte von anderen Usern. also wie 2, nur dass die bestimmte Position dann ein paar Plätze vor meinem User anfängt.
Also auf gut Deutsch: Ich suche Frank. Ich weiß aber nicht wo Frank gerade liegt, muss dazu wissen welche Reihe er liegt und daraus dann errechnen, welche Zeilen ich ausgeben muss.

Nun gibt es in meinen Augen 2 Lösungen:
a) die Topliste erstelle ich mit einem insert select, wenn ich den select sortiere, kann ich die schon richtig sortiert eintragen. Wenn ich dem Insert nun noch beibringe, dass er in eine Spalte einen Zähler einträgt, der sagt, die wievielte Spalte er da einträgt, könnte ich schnell auslesen wo Frank steht und dann die Abfrage machen.

b) ich bekomme auf eine andere einfache Methode raus an welche Position die Zeile steht in der Frank steht, wenn ich nach Punkten sortiere. und gehe einfach wie in 2 vor.

Bei beidem fehlt mir aber die Idee wie ich das schaffe, ohne das wieder durch php zu jagen.

Würde mich freuen, wenn mir da wer helfen kann.
CC84 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.04.2006, 13:31  
Neuer Benutzer
 
Registriert seit: 29.02.2004
Beiträge: 19
Micro
Standard

Hi auch...

Hmmmm, Du kannst ja die Position der Ausgabe feststellen:

PHP-Code:
<?php
$i
=1;
$result mysql_query("select * ...... order by top ASC");
while(
$row=mysql_fetch_row($result)) {
$name $row[1];
if (
$name == "Frank") {  $treffer $i; }
}
?>
Dann addierst und subtrahierst Du zu der Position ($treffer) nur noch die "limit" dazu:

PHP-Code:
<?php

$minus 
$treffer-5;
$plus $treffer+5;
$result2 mysql_query("select * ..... order by top ASC limit $minus,plus");
......

?>
Alles klar ???

Gruß Micro
__________________
... er sagte jemand, es könnte schlimmer kommen...
... und siehe da, es kam schlimmer...
Micro ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Tabellen kopieren ohne bestimmte Zeilen HaraDej Datenbanken 2 01.08.2007 15:49
URL - bedingung nixdorf PHP Tipps 2007 3 03.01.2007 01:14
SELECT um eine Bedingung erweitern ?! Datenbanken 2 22.10.2005 10:09
[Erledigt] Script nur ausführen, wenn eine bestimmte Taste gedrückt ist HTML, Usability und Barrierefreiheit 2 05.08.2005 01:08
[Erledigt] Wert von Reihe 1 mit Wert von Reihe 2 tauschen Datenbanken 5 20.06.2005 17:21
if bedingung PHP Tipps 2005-2 4 14.06.2005 10:13
Jeweils 3 Ergebnisse in einer Reihe? PHP Tipps 2004-2 2 18.12.2004 03:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
reihe bedingung

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.