php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.04.2007, 13:33  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard Forenränge

Hallo,
ich hab nen kleines Denkproblem. Ich hab eine Tabelle mit Rängen für die Anzahl geposteter Beiträge. Die sieht wie folgt aus:


Code:
-------------------
|ID|Name|from|
-------------------
Da stehen dann z.B. Ränge drin wie Anfänger (from 0), Fortgeschrittener (from 10) etc.

Jetzt habe ich z.B. die Anzahl der Posts in der Variable $userposts. Wie bekomme ich jetzt in einer mySQL Abfrage den Rank des Users raus?
Mir fehlt da irgendwie der Ansatz, weil ich würde das wenn mit mehreren Querys machen aber das muss doch auch bestimmt in einem gehen.


mfg
Link
GSJLink ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.04.2007, 14:05  
Erfahrener Benutzer
 
Registriert seit: 05.09.2004
Beiträge: 106
PHP-Kenntnisse:
Fortgeschritten
MaMo-Net
Standard

Mal schnell aus dem nicht ausgeschlafenen Kopf:

SELECT Name FROM forenraenge WHERE from <= "$userposts" ORDER BY from DESC LIMIT 1

=> Hole alle Ränge bei denen From kleiner oder gleich $userposts ist, also alle Ränge dir der Benutzer schon hat(te). Dann sortiere absteigend nach From, damit der Rang mit der größten Postzahl zurückgeliefert wird und zwar nur der eine, sichergestellt durch LIMIT 1.
MaMo-Net ist offline  
Alt 11.04.2007, 14:41  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Danke, so funktionierts.
Ich war warscheinlich noch zu schläfrig um das hinzubekommen

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline  
Alt 11.04.2007, 14:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Entweder so, oder man schreibt sich auf, welcher Bereich von $userposts auf welchen Bereich von $from umgeschrieben werden muss und überlegt sich dann eine mathematische Funktion, die Wert $userposts in Wert $from umschreibt.

Folgendes Beispiel:
Code:
  0- 49 $userposts -> $from = 1, Anfänger 
 50- 99 $userposts -> $from = 2, Fortgeschrittener 
100-149 $userposts -> $from = 3, Profi 
  >=150 $userposts -> $from = 4, Gott
Hierfür wäre die passende Funktion
Code:
IF ($userposts < 150) DANN ABRUNDEN ( $userposts / 50 ) + 1 SONST 4
In MySQL dann direkt
Code:
IF (`$userposts` < 150, FLOOR(`$userposts` / 50) + 1, 4)
Zergling-new ist offline  
Alt 11.04.2007, 15:09  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Das macht den Code aber unnötig länger. Die andere Methode funktioniert besser.

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline  
Alt 11.04.2007, 15:10  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Das funktioniert aber nur bei regelmässigen Abschnitten.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 11.04.2007, 15:25  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das funktioniert mit allem, was sich über eine Funktion abbilden läßt. Zugegebenermaßen ist die von MaMo aber cleverer.
Zergling-new ist offline  
 


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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
foren ränge php, forenränge, php forenränge, forenrang php, tipps für forenränge, forenraenge tipps, namen für forenränge, forenränge php

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:46 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.