SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 22.09.2014, 22:07:49
Benutzerbild von Oskar
Oskar Oskar ist offline
Anfänger
 
Registriert seit: Apr 2008
Alter: 57
Beiträge: 92
Gezielt nach einer Spalte suchen die addiert den größten Wert enthält

Hallo Forum,

ich suche in einer DB nach der Spalte die addiert den größten Wert enthält.

Allerdings hapert es an dem ORDER BY Statement.

Die Variable $SpalteSpielID ist der Name der Spalte die von 1 bis 306 durchnummeriert sind.

Zur Zeit versuche ich es mit:

PHP-Code:
SELECT SUM($SpalteSpielID)
                    
FROM `Mitspielerpunkte`
                    
WHERE Aktiv=AND Exkludiert=0
                    ORDER BY $SpalteSpielID DESC LIMIT 1 
Bei dieser Abfrage wird mir leider nur der letzte Datensatz angezeigt und nicht der Datensatz mit dem größten addierten Wert.

Bei dieser Abfrage:

PHP-Code:
SELECT SUM($SpalteSpielID)
                    
FROM `Mitspielerpunkte`
                    
WHERE Aktiv=AND Exkludiert=0
                    ORDER BY SUM 
($SpalteSpielIDDESC LIMIT 1 
erhalte ich diese Fehlermeldung: FUNCTION DB0000000.SUM does not exist.

Ja ich habe schon gegoogelt etc. finde aber leider keine Lösung für mein Problem. Falls mir jemand auf die Sprünge helfen kann würde ich mich sehr freuen.


Gerade eben probiert:

PHP-Code:
SELECT SUM($SpalteSpielID) AS Spalte
                    FROM 
`Mitspielerpunkte`
                    
WHERE Aktiv=AND Exkludiert=0
                    ORDER BY Spalte DESC LIMIT 1 
Funktioniert leider ebenfalls nicht.
__________________
Ceterum censeo Carthaginem esse delendam
Mit Zitat antworten
  #2  
Alt 23.09.2014, 08:06:18
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Gezielt nach einer Spalte suchen die addiert den größten Wert enthält

Zitat:
Zitat von Oskar Beitrag anzeigen
Hallo Forum,

ich suche in einer DB nach der Spalte die addiert den größten Wert enthält.
Zeig mal bitte Deine Tabellenstruktur. Ich ahne schlimmes...
Mit Zitat antworten
  #3  
Alt 24.09.2014, 00:31:53
Benutzerbild von Oskar
Oskar Oskar ist offline
Anfänger
 
Registriert seit: Apr 2008
Alter: 57
Beiträge: 92
AW: Gezielt nach einer Spalte suchen die addiert den größten Wert enthält

Tabellenstruktur ist folgende:

1. Spalte ist die Benutzer ID als Timestamp abgespeichert unter varchar(11)
2. bis 307. Spalte ist die SpielID abgespeichert als tinyint(3)


BenutzerID SpielID306 SpielID305 SpielID304


1403635609 ----------1-------------3 -----------3

1404106862 ----------1-------------3------------1

1406230481-----------1-------------3------------1

1408648317-----------1-------------1------------3


Jetzt hätte ich gerne das ich als Sortierung bzw. einzige Anzeige die SpielID 305 mit 10 Punkten bekomme.
__________________
Ceterum censeo Carthaginem esse delendam
Mit Zitat antworten
  #4  
Alt 24.09.2014, 10:03:28
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Gezielt nach einer Spalte suchen die addiert den größten Wert enthält

Zitat:
Zitat von Oskar Beitrag anzeigen
Tabellenstruktur ist folgende:

1. Spalte ist die Benutzer ID als Timestamp abgespeichert unter varchar(11)
2. bis 307. Spalte ist die SpielID abgespeichert als tinyint(3)
Das übertrifft die schlimmsten Erwartungen.


Zitat:
BenutzerID SpielID306 SpielID305 SpielID304


1403635609 ----------1-------------3 -----------3

1404106862 ----------1-------------3------------1

1406230481-----------1-------------3------------1

1408648317-----------1-------------1------------3


Jetzt hätte ich gerne das ich als Sortierung bzw. einzige Anzeige die SpielID 305 mit 10 Punkten bekomme.
Ich versteh nur Bahnhof, denke aber, es ist auch nicht wert, darüber länger nachzudenken. Wirf das weg und beschäftige Dich mit Normalisierung und Datentypen und allgemein Tabellendesign.
Mit Zitat antworten
  #5  
Alt 24.09.2014, 15:15:16
Benutzerbild von Oskar
Oskar Oskar ist offline
Anfänger
 
Registriert seit: Apr 2008
Alter: 57
Beiträge: 92
AW: Gezielt nach einer Spalte suchen die addiert den größten Wert enthält

Zitat:
Zitat von pguser Beitrag anzeigen
Ich versteh nur Bahnhof, denke aber, es ist auch nicht wert, darüber länger nachzudenken.
Danke für die nette und überaus fachliche Hilfestellung.
__________________
Ceterum censeo Carthaginem esse delendam
Mit Zitat antworten
  #6  
Alt 24.09.2014, 16:30:42
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Gezielt nach einer Spalte suchen die addiert den größten Wert enthält

Zitat:
Zitat von Oskar Beitrag anzeigen
Danke für die nette und überaus fachliche Hilfestellung.
Dein Problem wenn Du die Hinweise auf Normalisierung offenbar misachtest.

Wenn ich Deine Frage im ersten Post richtig verstehe wäre Deine Lösung in etwa folgendes:

Code:
test=*# select * from oskar ;
 spieler | spiel | wert
---------+-------+------
       1 |     1 |   10
       1 |     2 |   12
       1 |     3 |    9
       2 |     1 |    8
       2 |     2 |    6
       2 |     3 |    5
       3 |     1 |  100
       3 |     2 |  150
       3 |     3 |  122
(9 rows)

Time: 0,192 ms
test=*# select spiel, sum(wert) from oskar group by spiel order by sum(wert) desc limit 1;
 spiel | sum
-------+-----
     2 | 168
(1 row)

306 Spalten wie von Dir gezeigt ist schlicht FAIL, ebenso die Datentypen. Um auf "Benutzer ID als Timestamp abgespeichert unter varchar(11)" braucht man schon sehr harte Drogen - und die in schlechter Qualität.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie jeden Wert einer Spalte mit bestimmten Wert multiplizieren? dkreuzer MySQLi/PDO/(MySQL) 1 03.07.2014 17:48:47
Tabellen normalisieren teddyd MySQLi/PDO/(MySQL) 3 09.06.2011 12:22:38
Problem - kleinsten Wert ermitteln und in spalte schreiben. starkeeper MySQLi/PDO/(MySQL) 1 07.08.2009 14:26:40
wie default wert aus anderer spalte importieren? Callisto MySQLi/PDO/(MySQL) 2 19.10.2007 12:39:50
Alle Eintröge wo der höchste Wert einer Spalte ist Dr. Frankenstei MySQLi/PDO/(MySQL) 4 10.04.2005 20:22:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:03:49 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt