65999
May 14, 2010, updated at Nov 24, 2016 (UTC)
10658
9
0
Die meisten gleichen Datensätze aus einer SQL Datenbank anzeigen
Vielleicht könnt ihr mir helfen, bestimmt für euch eine Kleinigkeit.
Ich habe eine Datenbank mit 25 Feldern.
In diese Datenbank sollen Zahlen geschrieben werden. Nachdem die Datenbank anfängt sich zu füllen, möchte ich mit php eine Auswertung machen über die Einträge, die am meisten in der jeweiligen Spalte stehen. Beispiel:
1
3
3
2
1
1
Ergebnis: Die 1
Also soll auf der Seite die 1 erscheinen!
Wie kann ich das umsetzen? Es soll auch gezählt werden, wie oft die 1 in der Datenbank steht?
Ich habe schon alles mögliche probiert, mit count, mit count Array usw. Dann hab ich was hinbekommen, dann liegt es an dem mysql fetch objekt / array usw.
Es wäre sehr nett, wenn mir jemand man kurz die Lösung posten könnte:
Ich habe eine Datenbank mit 25 Feldern.
In diese Datenbank sollen Zahlen geschrieben werden. Nachdem die Datenbank anfängt sich zu füllen, möchte ich mit php eine Auswertung machen über die Einträge, die am meisten in der jeweiligen Spalte stehen. Beispiel:
1
3
3
2
1
1
Ergebnis: Die 1
Also soll auf der Seite die 1 erscheinen!
Wie kann ich das umsetzen? Es soll auch gezählt werden, wie oft die 1 in der Datenbank steht?
Ich habe schon alles mögliche probiert, mit count, mit count Array usw. Dann hab ich was hinbekommen, dann liegt es an dem mysql fetch objekt / array usw.
Es wäre sehr nett, wenn mir jemand man kurz die Lösung posten könnte:
<?php
include("db.php");
$abfrage = mysql_query("SELECT Count(1) FROM tabelle '");
?>
Please also mark the comments that contributed to the solution of the article
Content-Key: 142801
Url: https://administrator.de/contentid/142801
Printed on: April 26, 2024 at 19:04 o'clock
9 Comments
Latest comment
Hallo,
martez hat dir den logischen Aufbau des Befehls geschrieben.
Die genaue SQL Query musst du dir mal nachschlagen da jeder Dialekt (MSSQL,MySQL, FirebirdSQL .....) etwas anderes geschrieben wird.
Für FirebirdSQL wird es so lauten:
Select count(spalte1),spalte1 from tabelle group by spalte1 order by 1 desc
Damit bekommst du eine zweispaltige Ausgabe wobei die erste Spalte die Häufigkeit (count(spalte1)) und die zweite den Wert aus der Spalte1 enthält.
Order by desc gibt nur die Sortierung nach der größten Häufigkeit an.
Deine Aufgabe ist nun das in richtige mySQL - SQL Statments umzubauen.
Mach erst einmal eine php Abfrage über ein einfaches SELECT und wenn das sauber funktioniert dann suche dir den Rest zusammen.
siehe hier: http://dev.mysql.com/doc/refman/5.1/de/example-maximum-column-group.htm ...
martez hat dir den logischen Aufbau des Befehls geschrieben.
Die genaue SQL Query musst du dir mal nachschlagen da jeder Dialekt (MSSQL,MySQL, FirebirdSQL .....) etwas anderes geschrieben wird.
Für FirebirdSQL wird es so lauten:
Select count(spalte1),spalte1 from tabelle group by spalte1 order by 1 desc
Damit bekommst du eine zweispaltige Ausgabe wobei die erste Spalte die Häufigkeit (count(spalte1)) und die zweite den Wert aus der Spalte1 enthält.
Order by desc gibt nur die Sortierung nach der größten Häufigkeit an.
Deine Aufgabe ist nun das in richtige mySQL - SQL Statments umzubauen.
Mach erst einmal eine php Abfrage über ein einfaches SELECT und wenn das sauber funktioniert dann suche dir den Rest zusammen.
siehe hier: http://dev.mysql.com/doc/refman/5.1/de/example-maximum-column-group.htm ...
wie muss ich das nun machen?
um die Hilfestellung für dich etwas abzukürzen, verrate uns doch einmal wie die erste spalte deiner Tabelle heißt.
Sollte die Spalte wirklich den Namen "1" haben dann wäre das suboptimal.
Wenn ich dich richtig verstanden habe wolltest du ein Ergebnis in der Art:
Wert Spalte 1 | Häufigkeit
1 5
2 1
3 456
4 43
bekommen.
Dann fehlt im deinen Befehl noch die zweite Spalte.
Es müsste wohl doch so etwas wie:
SELECT spalte1,count(spalte1) AS anzahl FROM wiso
GROUP BY spalte1
sein.
Moin it-frosch,
er sagt ja:
Muss eine ganz, ganz neue DB sein ..*gg
Grüße
Biber
Zitat von @it-frosch:
um die Hilfestellung für dich etwas abzukürzen, verrate uns doch einmal wie die erste spalte deiner Tabelle heißt.
Ja nee, auch wenn es eigentlich physikalisch unmöglich ist...um die Hilfestellung für dich etwas abzukürzen, verrate uns doch einmal wie die erste spalte deiner Tabelle heißt.
er sagt ja:
Ich habe eine Datenbank mit 25 Feldern (nummeriert von 1 bis 25).
Muss eine ganz, ganz neue DB sein ..*gg
Grüße
Biber