flubber42
Goto Top

SQL Abfrage schachteln

Suche eine möglichkeit eine Sql Abfrage zu schachteln.

Hallo @all,

ich stehe im moment vor einen großen Problem, und hoffe, dass jemand von euch mit helfen kann...

Es geht darum, dass ich in einer SQL Datenbank Einträge habe die von einer Website kommen Bestehend aus folgenden Feldern:

Name Kat1 Kat2 Kat3
Testuser1 1024 2545 3589
Testuser2 1024 2874 3895
Testuser3 1052 2159 3698

Die Kat entsprechen einer Kategorie. Mit dem Befehl

 
$kat1pix = mysql_query("SELECT distinct kat1 from tabelle order by kat1");  
  while($row = mysql_fetch_object($kat1pix))
  
  		{
		echo "$row->kat1 <br>";  
		}

finde ich heraus welche nummern in kat1 überhaupt verfügbar sind und lasse es in einer Schleife ausgeben im beispiel würde jetzt 1024 und 1052 untereinander ausgegeben werden.

Jetzt mein Problem:
Als nächstes soll hinter den ausgegebenen nummern stehen wie oft diese in der Tabelle vorhanden ist. Doch dazu fehlt mir komplett der ansatz. Klar muss ich die Ausgabe der 1. Abfrage wieder verwenden aber wie mache ich das? Das auch noch die mit den meisten einträgen oben stehen??? Soll dann so aussehen:

Ergebnis aus Abfrage
1024 2
1052 1


Kann jemand Helfen???

Danke!

Content-ID: 137968

Url: https://administrator.de/contentid/137968

Ausgedruckt am: 17.11.2024 um 12:11 Uhr

Biber
Biber 11.03.2010 um 10:32:53 Uhr
Goto Top
Moin Flubber42,

ganz klar ist mir das End-ziel nach dem von dir angedachten zwischnschritt noch nicht.
Aber der Zwischenschritt würde vermutlich über ein GROUP BY und COUNT führen

Beispiel:
SELECT kat1, Count(kat1) as Anzahl 
FROM tabelle 
GROUP BY kat1

Wo du eigentlich hinwillst...??? Poste bitte nochmal ein Muster.

Grüße
Biber

[edit] @prostmahlzeit
Stimmt, hab ich vollkommen überlesen. Danke für die Korrektur.
[/edit]
SlainteMhath
SlainteMhath 11.03.2010 um 10:42:18 Uhr
Goto Top
Moin,
Biber hat was übersehen face-smile

Das auch noch die mit den meisten einträgen oben stehen???


SELECT kat1, Count(kat1) as Anzahl 
FROM tabelle 
GROUP BY kat1
ORDER BY Anzahl DESC

lg,
Slainte
Flubber42
Flubber42 11.03.2010 um 12:07:54 Uhr
Goto Top
Hi Slainte, Hi Bieber, danke für eure Hilfe!

ich hab jetzt mal den Code auf die Website gesetzt.. also im PHPMyAdmin läuft es danke! nur auf der Website bekomme ich nichts angezeigt .. woran kann das liegen?


$kat1pix = mysql_query("SELECT kat1, Count(kat1) as Anzahl FROM Lachen2010 GROUP BY kat1 ORDER BY Anzahl DESC)");  
   while($row = mysql_fetch_object($kat1pix))

  		{
		echo "$row->kat1 Anzahl <br>";  
		}

Meine website ist also komlpett weiß ohne inhalt.. face-sad

Lg Flubber42
Biber
Biber 11.03.2010 um 12:28:41 Uhr
Goto Top
Moin Flubber42,

weil der echo-befehl nichts anfangen kann mit dem "kat1-leerzeichen-Anzahl" der jeweiligen $row?

Du willst doch zwei Felder anzeigen, ein Textfeld (kat1) und ein numerisches (Anzahl), oder nicht?

Meine website ist also komlpett weiß ohne inhalt.
Ich könnte dir einen Tipp geben, wie du das auf komplett schwarz ohne Inhalt ändern könntest.

Grüße
Biber
SlainteMhath
SlainteMhath 11.03.2010 um 12:37:04 Uhr
Goto Top
versuch's mal mit
printf("%s %s<br>",$row->kat1, $row->Anzahl);  

anstatt dem "Echo"
Flubber42
Flubber42 11.03.2010 um 12:55:18 Uhr
Goto Top
{
printf ("%s %s<br>",$row->kat1, $row->Anzahl);  
}

sorry läuft leider nicht immer noch alles leer
Biber
Biber 11.03.2010 um 13:16:43 Uhr
Goto Top
Moin Flubber42,

und wenn du das überflüssige Klammer-Zu-Zeichen nach dem DESC in deinem Statement weglässt?

Wird es dann gültiger? face-wink

Grüße
Biber
Flubber42
Flubber42 11.03.2010 um 13:26:11 Uhr
Goto Top
Ja dann ähhh .. läufts face-wink

$kat1pix = mysql_query("SELECT kat1, Count(kat1) as Anzahl FROM Lachen2010 GROUP BY kat1 ORDER BY Anzahl DESC");  
   while($row = mysql_fetch_object($kat1pix))

  		{
		printf ("%s %s<br>",$row->kat1, $row->Anzahl);  
		}

Cool Danke euch beiden!!

LG Flubber42