Du bist nicht angemeldet.

Tharian

Schüler

  • »Tharian« ist der Autor dieses Themas

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

1

02.10.2012, 22:21

verkettete Select auf die selbe Tabelle

Hi zusammen!

Irgendwie steh ich grad mal voll auf dem Schlauch.

Hab eine Tabelle, in der Produkte stehen. Diese Produkte werden Kunden zugeordnet. Wie kann ich nun herausfinden, wieviele Produkte jeder einzelne Kunde hat?

Also:
Kunde 1 hat 3 Einträge in der Tabelle
Kunde 2 hat 5 Einträge
Kunde 3 hat 9 Einträge
usw usw

Tabellenstruktur ist etwa so:

nr. | Art_nr | KD_nr |....

Herauskommen soll ein Array
$ergebnis['Kundennummer']['Anzahl_Artikel']

Wäre dankbar für eure Hilfe...
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

2

02.10.2012, 22:53

Wofür brauchst du ein 2 dimensionales Array, wenn du nur 1 Wert pro Kunde speichern willst? o.O
Ich würds so machen:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
$KD_nr mysql_query('SELECT `KD_nr` FROM `TABELLENNAME`');

$KDs$ergebnis;

while($row mysql_fetch_object($KD_nr)) 
    $KDs array_merge($KDs, (array) $row->KD_nr);

for($i 0$i count($KDs); $i++) {
    $Art_nr mysql_query('SELECT `Art_nr` FROM `TABELLENNAME` WHERE `KD_nr` = `'.mysql_real_escape_string($KDs[$i]).'`');
    $ergebnis array_merge($ergebnis, array($KDs[$i] => mysql_num_rows($Art_nr));
}


müsste theorethisch funktionieren.
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Patrick« (03.10.2012, 15:47) aus folgendem Grund: Syntax Fehler..


Tharian

Schüler

  • »Tharian« ist der Autor dieses Themas

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

3

02.10.2012, 23:08

Danke für deine Antwort!

Das 2-D-Array brauche für die eindeutige Zuweisung von Kunde zu aktuellen Artikeln.

Aber würd da nicht die for-Schleife für jeden Kunden 1x durchlaufen?

Bei vlt. 200 Kunden würde die Abfrage dann ordentlich Ressourcen fressen und seine Zeit auf sich warten lassen.
(Und ich hab die Hoffnung - die ja bekanntlich zum Schluss stirbt - dass es auch mehr als 200 Kunden werden^^)
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

4

03.10.2012, 03:12

Also du kannst das ganze auch simpel mit einem MySQL Statement machen.
So sollte das funktionieren:

MySQL-Abfrage(n)

1
2
3
SELECT KD_nr, COUNT(*) as Art_count
FROM table
GROUP BY KD_nr


Dann bekommst du die Kundennummer und die Anzahl der verschiedenen Artikel für den Kunden.

Edit: Huch schon so spät xD

Es haben sich bereits 2 registrierte Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Tharian (03.10.2012), Patrick (03.10.2012)

Tharian

Schüler

  • »Tharian« ist der Autor dieses Themas

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

5

03.10.2012, 08:49

Das scheint tatsächlich richtig zu sein!
Und dabei so einfach - lol

Aber manchmal sitzt man auf der richtigen Synapse... vielen Dank für die Hilfe!
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

Patrick

Profi

Beiträge: 694

Danksagungen: 168

  • Private Nachricht senden

6

03.10.2012, 15:47

Misst.. an COUNT hab ich gar nicht mehr gedacht ;D
Ex ungue leonem.

War der Beitrag für dich hilfreich?
Dann drück auf .

Ähnliche Themen