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, 7068 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
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
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 ...

Windows Server
Microsoft SQL-Datenbank Syncronisieren

Frage von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...