php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-08-2008, 18:05
Baronesse
 Newbie
Links : Onlinestatus : Baronesse ist offline
Registriert seit: Jul 2008
Beiträge: 19
Baronesse ist zur Zeit noch ein unbeschriebenes Blatt
Standard Code und Ausgabeproblemchen

Ich habe eine Tabelle in der Datenbank in der ich verschiedene Resultate sammel. Nun wollte ich aus dieser Datenbank ein Ranking erstellen.

Hier sollten NUR die ersten Plätze pro User gezählt und angezeigt werden.

Nach der Anzahl der zusammengezählten ersten Plätze sollte dann das Ranking geordnet sein.



Mein Code sieht bisher so aus:

PHP-Code:

<?php include('db.php');

 
$dateiname "erfolge.php";

$sql "SELECT Vorname FROM `user`" or die("$sql<hr />" .mysql_error());

$result mysql_query($sql);

while (
$row mysql_fetch_array($result)) 

$name"$row[Vorname]";

$platz_1 mysql_query("SELECT `id` FROM `turniere` 

WHERE (`Platz` = '1') AND (`Reiter` = '$name') "
);

$platz_1 mysql_num_rows($platz_1); 

for(
$i 1$i 4$i++)  



echo  
"<tr>

         <td>$i.</td>"


echo 
" <td>$name</td>

         <td>$platz_1</td>

         </tr>

         <tr>"
;}} ?>

         </table>


Es ist aber so, dass mir jeder Name, der aber nur einmal vorkommen soll jeweils mit 1., 2., 3. ausgegeben wird.

Meine Frage ist nun zum einen wie man es hinbekommen kann, dass der Name nur einmal ausgegeben wird und das Ranking nach der Anzahl der Siege geordnet ausgegeben wird.
Mit Zitat antworten
  #2 (permalink)  
Alt 18-08-2008, 10:13
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ziemlich sicher falsches Forum! Das kannst du am Besten mittels einer SQL Abfrage erledigen --> **move** nach MySql
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 18-08-2008, 10:19
christianstrang
 Newbie
Links : Onlinestatus : christianstrang ist offline
Registriert seit: Aug 2007
Beiträge: 4
christianstrang ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Könntest du noch deine Tabellenstruktur etc. posten, ich konnte das Problem so wie es beschrieben war nicht ganz erfassen, allerdings denke ich, dass man das alles in einem Query erzielen kann, ohne vorher die Namen zu selektieren und diese zu durchlaufen, weil dadurch ergibt sich ja auch eine immens große Anzahl an Queries (angenommen du hast 1000 User , dann wird für jeden ein Query ausgeführt) <= natürlich vorausgesetzt, ich habe es richtig verstanden.
__________________
Codestreamer.de - ein Platz für Coder
Mit Zitat antworten
  #4 (permalink)  
Alt 18-08-2008, 10:29
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
SELECT sum( `rank` ) AS 'AnzErsterPlatz', name
FROM ranking
WHERE rank =1
GROUP BY (name)
ORDER BY 'AnzErsterPlatz' DESC
So kriegst du alles mit einer Abfrage raus und musst nicht, so wie du es jetzt machst, pro User eine Abfrage ausführen
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

Geändert von jahlives (18-08-2008 um 10:43 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 18-08-2008, 11:49
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit folgendem Code sollte das gehen:
PHP-Code:
<?php 
include('db.php');

$sql "
    SELECT 
        u.vorname,
        COUNT(t.id) anz
    FROM
        user u
    INNER JOIN
        turniere t ON u.vorname = t.reiter
    GROUP BY
        vorname
    WHERE
        t.platz = 1
    ORDER BY
        anz DESC"
;
$result mysql_query($sql) or die("$sql<hr />" mysql_error());
$i 1;
echo 
"<table>\n";
while (
$row mysql_fetch_assoc($result)) { 
    
$name $row['vorname'];
    echo  
"<tr>
            <td>$i.</td>
            <td>$name</td>
            <td>" 
$row['anz'] . "</td>
        </tr>\n"
;
    
$i ++;

echo 
"</table>\\n";
__________________
Gruss
H2O
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:01 Uhr.