Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Die meisten gleichen Datensätze aus einer SQL Datenbank anzeigen

Frage Entwicklung Datenbanken

Mitglied: 65999

65999 (Level 1)

14.05.2010, aktualisiert 24.11.2016, 7147 Aufrufe, 9 Kommentare

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:

01.
<?php 
02.
 
03.
include("db.php"); 
04.
$abfrage = mysql_query("SELECT Count(1) FROM tabelle '");  
05.
?>
Mitglied: maretz
14.05.2010 um 07:55 Uhr
select count(spaltenname) from tabellenname order by count(spaltenname) limit 1

müsste in etwa gehen
Bitte warten ..
Mitglied: 65999
14.05.2010, aktualisiert 09.11.2016
danke dir
Bitte warten ..
Mitglied: it-frosch
14.05.2010, aktualisiert 24.11.2016
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 ...
Bitte warten ..
Mitglied: 65999
14.05.2010, aktualisiert 24.11.2016
Meine abfrage lautet wie folgt:

01.
include("db.php"); 
02.
$result = mysql_query('Select count(1) from wiso order by count(1) limit 1'); 
03.
$ergebnis = mysql_query($result); 
04.
 
05.
while($row = mysql_fetch_object($ergebnis)) 
06.
07.
        echo $row->1; 
08.
    }
Als Ergebnis habe ich aber stets folgende Fehlermeldung:

01.
Parse error: syntax error, unexpected T_LNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in ******\httpdocs\abfrage.php on line 25
Bitte warten ..
Mitglied: maretz
14.05.2010 um 13:14 Uhr
count(1) -> kann nicht klappen. Da gehört nen Tabellenname rein - und ich glaub (hoffe) nicht das du deine Tabellen einfach durchnummeriert hast...
Bitte warten ..
Mitglied: 65999
14.05.2010, aktualisiert 09.11.2016
Ok, dachte der Spaltenname gehört da rein weil ich ja auch nur die Einträge in der spalte zählen wollte.
Bitte warten ..
Mitglied: it-frosch
14.05.2010 um 22:32 Uhr
>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.
Bitte warten ..
Mitglied: Biber
15.05.2010 um 13:59 Uhr
Moin it-frosch,

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...
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
Bitte warten ..
Mitglied: it-frosch
15.05.2010 um 14:19 Uhr
Hallo Biber,

ok, habe es jetzt auch verstanden.

Dann sollte er sich jetzt wohl am einfachsten seine DB mit einem select auslesen und sich daraus dann
ein insert Script für die neue DB bauen.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Backup
Veeam Endpoint Backup findet SQL Datenbank nicht (1)

Frage von FFSephiroth zum Thema Backup ...

Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Windows Server
Eine bestimmte SQL-Datenbank wird nicht jeden Tag gesichert? (12)

Frage von AlbertMinrich zum Thema Windows Server ...

Windows Server
gelöst SQL Datenbank Umzug (4)

Frage von hornissenmann zum Thema Windows Server ...

Heiß diskutierte Inhalte
Viren und Trojaner
gelöst Wie werde ich den Mist "fanli90" wieder los? (18)

Frage von Taumel zum Thema Viren und Trojaner ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (17)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Grafikkarten & Monitore
Neue Graifkkarte - kein Bild (10)

Frage von bestelitt zum Thema Grafikkarten & Monitore ...