brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-10-2002, 17:31
GeoffRowleyX
 Newbie
Links : Onlinestatus : GeoffRowleyX ist offline
Registriert seit: Sep 2002
Ort: Gehren/Thüringen
Beiträge: 32
GeoffRowleyX ist zur Zeit noch ein unbeschriebenes Blatt
GeoffRowleyX eine Nachricht über ICQ schicken
Standard Gesamtwertung ?

Hallo !

Ich habe ein Problem bei einen Projekt von mir. Ich habe jetzt den Script eigentlich fertig da fällt mir auf ich habe gar keine Gesamtwertung eingebaut. Dies macht mir enorme Probleme. Zur Erklärung. Ich habe ein Hotlap (Schnelle Runden) System programmiert wo man sich Registrieren kann und dann Runden zu jeder Zeit (egal wann) auf jeden der 17 original F1 Kurse hochladen kann. Wie gesagt zu jeder Zeit es gibt keine Zeiträume für 1 Strecke. (gerade dies macht mir Probleme). Dies ist meine Tabellen Struktur:

Tabelle 1: Members (Spalten: ID, Benutzername, Kennwort, Email, icq, gebdatum, herkunft, erfolge, Registierungszeit, Registierungsdatum, interessen, rang (zum unterscheiden von Admins, Prüfer und Usern).

Tabelle 2: new_hotlaps , da kommen die Runden bevor sie überprüft werden rein (Spalten: ID, Benutzername, Kennwort, track, timem, times, timez, split1m, split1s, split1z, split2m, split2s, split2z, file, datum (m steht für Minuten, s für Sekunden und z für Zehntel, dadurch kann ich die Runden besser in den Output auflisten).

Tabelle 3: hotlaps , da kommen überprüfte Runden rein (Spalten s.H. Tabelle 2)

Ja das waren die Tabellen, ich würde wenn nötig auch neue Spalten adden wie z.B. Punkte oder Platzierung. Sogar eine neue Tabelle wäre kein Problem. Ich möchte halt jetzt erreichen damit ich einen Output hinbekomme der nach einen bestimmten Punktesystem (z.B. durch Variablen in der Seite oben) diese Verteilt (für jede Strecke einzeln) und dann diese zusammenzählt. Insgesammt soll dann halt eine Tabelle mit der Gesamtwertung rauskommen z.B.:
1.Martin 100 Punkte
2.Michael 75 Punkte

Wäre das möglich ? Ich denke schon, also wenn mir jemand helfen kann dann büddeeeee. Ich würde ihn auch gerne im Impressum oder so auf der Page des Scripts (http://www.gpxhotlaps.de/beta) erwähnen. An der .de Domain sieht man auch dass das System nicht nur so nebenbei als Spaß programmiert wird, also büddee hilfe .
Mit Zitat antworten
  #2 (permalink)  
Alt 22-10-2002, 20:01
Titus
 PHP Master
Links : Onlinestatus : Titus ist offline
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
Titus ist zur Zeit noch ein unbeschriebenes Blatt
Post

kein Problem:
PHP-Code:
$res mysql_query('select * from hotlaps');
$apunkte = array();
while (
$x mysql_fetch_assoc($res))
{
  
// hier die Punkteberechnung
  
$punkte = ...;
  
// Punkte zum entsprechenden Namen addieren
  
$apunkte[$x['Benutzername']] += $punkte;
}
// Array nach Punkten absteigend sortieren ...
arsort($apunkte);
// ... und ausgeben:
$p=0;
foreach(
$apunkte as $name=>$punkte)
  echo ++
$p". $name $punkte Punkte<br>"
__________________
mein Sport: mein Frühstück: meine Arbeit:

Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
Mit Zitat antworten
  #3 (permalink)  
Alt 22-10-2002, 22:25
GeoffRowleyX
 Newbie
Links : Onlinestatus : GeoffRowleyX ist offline
Registriert seit: Sep 2002
Ort: Gehren/Thüringen
Beiträge: 32
GeoffRowleyX ist zur Zeit noch ein unbeschriebenes Blatt
GeoffRowleyX eine Nachricht über ICQ schicken
Standard

vielen und lieben dank !

Hmm ich nerve nochmal sorry...

Habe das Problem das ich jetzt ja für jede Runde z.B. 20 Punkte geben kann. Ich würde aber gerne
für die ersten 10 schnellsten Zeiten auf jeder Strecke Punkte für geben. Es gibt da ja die möglichkeit
die MySQL! DB Abrfage z.B. auf die ersten 10 schnellsten Zeiten auf einer Strecke zu filtern und das dann
halt für alle 17 Strecken zumachen (unter einander halt immer ne neue DB Abfrage starten). Nur weiss ich nicht wie machen kann das dann die 2. schnellste Zeit nur
noch z.B. 17 statt 20 Punkte bekommt. Kannst du oder jemand anders mir da nochmal helfen ? Ich glaube man müsste dann das so programmieren das er ab den 2. Datensatz 3 Punkte abzieht, weiss aber nicht wie ich das genau mache...

Geändert von GeoffRowleyX (22-10-2002 um 23:07 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 23-10-2002, 11:26
Titus
 PHP Master
Links : Onlinestatus : Titus ist offline
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
Titus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn du bei 20 Punkten anfängst und jedes Mal drei Punkte abziehst, brauchst du nur die sieben besten Zeiten ... sonst kriegt der achte -1 Punkt.
PHP-Code:
$apunkte = array();
for(
$strecke=1$strecke<18$strecke++)
{
  
$res mysql_query("select * from hotlaps
    where track=$strecke
    order by timem desc, times desc, timez desc
    limit 0,7"
  
);
  for(
$punkte=20$x=mysql_fetch_assoc($res); $punkte-=3)
    
$apunkte[$x['Benutzername']] += $punkte;

Du kannst natürlich auch ein flexibleres Punktesystem benutzen ... dann musst du nur zu Anfang per Array die Punkte für jeden Platz vergeben und anschließend das Array abgrasen:
PHP-Code:
$apunkte = array();
$spunkte = array(20,17,15,13,10,8,6,4,2,1);
$anzahl count($spunkte);
for(
$strecke=1$strecke<18$strecke++)
{
  
$res mysql_query("select * from hotlaps
    where track=$strecke
    order by timem desc, times desc, timez desc
    limit 0,$anzahl"
  
);
  for(
$platz=0$x=mysql_fetch_assoc($res); $platz++)
    
$apunkte[$x['Benutzername']] += $spunkte[$platz];

Wenn du dann noch willst, dass für gleiche Zeiten auch gleiche Punkte vergeben werden, wird das ganze noch etwas aufwändiger.
__________________
mein Sport: mein Frühstück: meine Arbeit:

Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
Mit Zitat antworten
  #5 (permalink)  
Alt 23-10-2002, 13:47
GeoffRowleyX
 Newbie
Links : Onlinestatus : GeoffRowleyX ist offline
Registriert seit: Sep 2002
Ort: Gehren/Thüringen
Beiträge: 32
GeoffRowleyX ist zur Zeit noch ein unbeschriebenes Blatt
GeoffRowleyX eine Nachricht über ICQ schicken
Standard

Ja also das mit den gleichen Zeiten ist egal weil es höhst unwahrscheinlich ist... Aber ich habe nun folgenden Code zusammen gesetzt und bekomme leider garkeine Ausgabe, in der DB gibt es aber 2 Datensätze mit den track Namen "Australien/Melbourne". Muss man vielleicht die Ausgabe im Gegensatz zum 1. Versuch ändern ? Sorry aber in diesen Teilgebiet habe ich fast 0 Plan :-/.

PHP-Code:
<?
include ('config3.php');
$verbindung mysql_connect($MySQL_HOST,$MySQL_USER,$MySQL_PASSWORT) or die (mysql_error());
mysql_select_db($MySQL_DB);
$apunkte = array();
$strecke 'Australien/Melbourne';
for(
$strecke 1$strecke<17$strecke++)
{
  
$res mysql_query("select * from hotlaps
    where track = $strecke
    order by timem desc, times desc, timez desc
    limit 0,7"
  
);
  for(
$punkte=20$x=mysql_fetch_assoc($res); $punkte-=3)
    
$apunkte[$x['Benutzername']] += $punkte;
}
// Array nach Punkten absteigend sortieren ...
arsort($apunkte);
// ... und ausgeben:
$p=0;
foreach(
$apunkte as $name=>$punkte)
  echo ++
$p". $name $punkte Punkte<br>";
?>
Mit Zitat antworten
  #6 (permalink)  
Alt 24-10-2002, 14:24
Titus
 PHP Master
Links : Onlinestatus : Titus ist offline
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
Titus ist zur Zeit noch ein unbeschriebenes Blatt
Red face

Ich war davon ausgegangen, dass die Strecken durchnummeriert sind ...
sonst musst du ein Array $strecken = array(...) mit den Streckennamen anlegen und dann mit foreach ($strecken as $strecke) durchwandern.
__________________
mein Sport: mein Frühstück: meine Arbeit:

Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:54 Uhr.