PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zählen


Hanna
02.04.2003, 19:42:20
Hallo,

habe da mal wieder ein Problemchen.

Habe schon mal etwas gesucht aber nichts richtig passendes gefunden.

Und zwar möchte ich folgendes machen:

Ich habe in einem Table zum Beispiel das Feld Kategorie.
In dem feld stehen nun eindeutige Namen wie zum Beispiel

PHP
SQL
USW

Jetzt würde ich gerne die im Feld vorhandenen einträge zählen und auf der Seite ausgeben.

so soll es aussehen:

<< In der Kategorie PHP sind 99 Einträge vorhanden>>
<< In der Kategorie SQL sind 15 Einträge vorhanden>>
<< In der Kategorie USW sind 41 Einträge vorhanden>>

Ich hoffe ich habe mich nicht wieder zu blöd ausgedrückt und man kann verstehen was ich möchte.

Wäre schön wenn jemandem hierzu was einfällt.

Schöne Grüße Hanna

c4
02.04.2003, 19:44:26
Dafür gibt es COUNT (http://www.mysql.com/doc/en/Counting_rows.html)

|Coding
02.04.2003, 19:56:54
hallo,

mach es doch mal so:


.
.
.
$col_array('hier', 'alle', 'spalten', 'rein', 'die', 'von', 'der', 'abfrage', 'betroffen', 'sind');
for($i = 0; $i < count($col_array); $i++){
$menge = mysql_query("SELECT COUNT(".$col_array[$i].") FROM tabelle");
print 'In der Kategorie '.$array[$i].' wurden '.$menge.' Einträge gefunden.';
}
.
.
.

upss, zu langsam...
next time i'll be faster!! :-)

Hanna
02.04.2003, 20:01:46
Hallo...

wenn mein englisch doch nur besser wäre... :)

aber ich denke das der zweite punkt der dort aufgeführt ist der richtige ist.

SELECT owner, COUNT(*) FROM pet GROUP BY owner;


bei mir zB so.
SELECT kategorie, COUNT(*) FROM php GROUP BY kategorie;

muss da nicht noch ein $ vor?

wie auch immer ...
liege ich damit richtig?

Gruß Hanna

c4
02.04.2003, 20:03:02
Wo willst Du ein $ reinpacken? Sieht doch okay aus so.
Übirgens: http://www.mysql.com/doc/de/Counting_rows.html

Hanna
02.04.2003, 20:03:39
ups auch zu langsam :)

aber der vollständigkeit halber

was macht den die zeile
for($i = 0; $i < count($col_array); $i++){

Hanna

Hanna
02.04.2003, 20:04:21
Geil !! auf Deutsch.... habe ich ja noch gar nicht gepeilt

ich dachte das vor select ein $ kommen müsste

|Coding
02.04.2003, 20:05:01
mit deinem beispiel müsstest du für jede kategorie ein eigenes query schreiben, mit meinem beispiel könntest du alle spalten in das array schreiben, welches dann von der for schleife, die ganzen kategorien abarbeitet.

Hanna
02.04.2003, 20:05:38
Das macht Sinn !

ich probier es gleich mal aus und gebe bescheid ob's funzzt

|Coding
02.04.2003, 20:08:20
uih, das erste mädel das "funzt" in den mund nimmt... *g*

c4
02.04.2003, 20:13:41
Mädel, hm...? (http://www.finbar.co.uk/idog.jpg)

Hanna
02.04.2003, 20:16:17
: ) funzzt aber nicht ....

und zwar ist bei mir ja nur die spalte kategorie betroffen, deshalb sieht das ganze so aus.

$col_array('kategorie');
for($i = 0; $i < count($col_array); $i++){
$menge = mysql_query("SELECT COUNT(".$col_array[$i].") FROM hannas");
print 'In der Kategorie '.$array[$i].' wurden '.$menge.' Einträge gefunden.';
}

bekomme nun den Fehler

Fatal error: Call to undefined function: () in /homepages/7/d20088230/htdocs/hanna/kategorien.php on line 11

und line 11 ist diese $col_array('kategorie');

Hanna
02.04.2003, 20:17:18
schöner Catoon.. aber in diesem Fall nicht zutreffend ...

c4
02.04.2003, 20:19:29
Richtig müsste es so lauten:
$col_array=array('kategorie');

|Coding
02.04.2003, 20:21:29
scheiße ist mir das peinlich ;-)

$col_array = array('kategorie');


@ c4

ich ging aber jetzt, frei wie ich bin, einfach mal davon aus, das sie ein mädel ist und scheinbar hatte ich auch recht... das ist ne menschenkenntnis, was? :-)

c4
02.04.2003, 20:24:49
Die eckigen Klammern sind ja gut und schön, aber wie willst Du das denn machen, wenn Du mehrere Datensätze in dieses Array klatschen willst? Immer explizit aufrufen ist nicht wirklich fein. Da war Deine erste Idee mit dem 'a1','a2','... schon besser. Nur nicht ganz... nun ja, halt nicht so ganz... ;)


Ich bewundere Deine männliche Intuition, die Dich richtig geleitet hat, als sie Dich wissen ließ, dass Hanna(!) weiblich ist. :)
Gut nun davon.

Hanna
02.04.2003, 20:26:58
so Jungs : )

wir nähern uns dem Ziel

jetzt gibt das scribt folgendes aus

In der Kategorie wurden Resource id #3 Einträge gefunden.

schon mal nicht schlecht :)
aber noch nicht ganz richtig ...

wo kann das jetzt Resource id # hernehmen? steht doch nirgends drin..

kann das eine Rückmeldung der Datenbank sein ?

|Coding
02.04.2003, 20:27:26
Original geschrieben von _c_4_
Die eckigen Klammern sind ja gut und schön...

was für eckige klammern?? :-)

Hanna
02.04.2003, 20:28:09
weltklasse !!!

|Coding
02.04.2003, 20:30:55
herr gott, scheiße!!!!

so muss das script aussehen.


$col_array = array('hier', 'alle', 'spalten', 'rein', 'die', 'von', 'der', 'abfrage', 'betroffen', 'sind');
for($i = 0; $i < count($col_array); $i++){
$result = mysql_query("SELECT COUNT(".$col_array[$i].") FROM tabelle");
$menge = mysql_fetch_row($result);
print 'In der Kategorie '.$col_array[$i].' wurden '.$menge.' Einträge gefunden.';
}


sorry, für meine verstreutheit, hat private gründe...

Hanna
02.04.2003, 20:32:43
wenigsten siehst du einen fehler wenn er da ist...
trotz einiger bücher die ich mir bereits zugelegt habe stehe ich manchmal (oft) vor den codes wie von einer Schlange betäubt ...

ich teste mal

Hanna
02.04.2003, 20:37:33
ich sags ja nicht gern'

<<In der Kategorie kategorie wurden Array Einträge gefunden. >>



$col_array = array('kategorie');
for($i = 0; $i < count($col_array); $i++){
$result = mysql_query("SELECT COUNT(".$col_array[$i].") FROM hannas");
$menge = mysql_fetch_row($result);
print '<center> In der Kategorie '.$col_array[$i].' wurden '.$menge.' Einträge gefunden.';
}

c4
02.04.2003, 20:41:33
Hab es jetzt mal selber getestet und muss feststellen, dass da ein [0] hinter dem $menge fehlte...
$col_array = array('kategorie');
for($i = 0; $i < count($col_array); $i++){
$result = mysql_query("SELECT COUNT(".$col_array[$i].") FROM hannas");
$menge = mysql_fetch_row($result);
print '<center> In der Kategorie '.$col_array[$i].' wurden '.$menge[0].' Einträge gefunden.';
}
mysql_fetch_row() spuckt doch ein Array aus!

Hanna
02.04.2003, 20:43:55
in der tat .... es läuft !!
Jungs... ich habt was gut bei mir!

aber jetzt nicht auf komische Gedanken kommen :)

|Coding
02.04.2003, 20:44:02
was nur mit mir los...? das ist doch gott verdammter pipi kram, das mache ich doch sonst im schlaf und jetzt... fehler über fehler...


Original geschrieben von Hanna
aber jetzt nicht auf komische Gedanken kommen :)

also bitte, was denkst du nur von uns männern? :-))

c4
02.04.2003, 20:46:25
$menge wird nicht überschrieben - $menge wird erstellt. Und zwar mit mysql_fetch_row(). Und dieses gibt immer ein Array zurück.

2 Sätze mit 'und' angefangen. Widerlich.


Edit: Wie ich gerade sehe klappt es nun. Daher: Keine Ursache. Dumme Gedanken sind mein 2ter Vorname. :)

Hanna
02.04.2003, 20:47:14
also, wenn ich das verstehen würde .... dann hätten wir nicht so lange diskutiert.

Aber mit dem Kapitel werde ich mich noch mal genauer befassen.
Da stecken bestimmt noch maehr interessante Möglichkeiten drin

c4
02.04.2003, 20:48:23
Was verstehen 'wir' denn nicht? Gibt ja keine dummen Fragen, also nur zu...

|Coding
02.04.2003, 20:50:35
stimmt, gibt keine dummen fragen, nur dumme antworten...

Hanna
02.04.2003, 20:51:39
ok...

mir macht immer noch die Zeile
for($i = 0; $i < count($col_array); $i++){

zu schaffen...
der part ist mir relativ klar count($col_array);

aber warum $i++

ich habe nirgends ++ gefunden...
was macht das ??

|Coding
02.04.2003, 20:55:09
$i++ ist das gleiche wie $i + 1

c4
02.04.2003, 20:57:09
Genauer: $i=$i+1 ;)

Klugscheißer, ich weiß...

Hanna
02.04.2003, 20:58:19
ahhhh Erleuchtung......

jetzt wird auch der zusammenhang klar...

Hanna
02.04.2003, 21:00:17
so ich muss mich für heute verabschieden.
Leider muss ich wieder früh raus.

Aber ich habe bestimmt bald ein neues Problem :)

vielen Dank das ihr euch so eine Mühe gegeben habt.
Gute Nacht ihr zwei ...

Hanna

|Coding
02.04.2003, 22:05:24
Original geschrieben von Hanna
Aber ich habe bestimmt bald ein neues Problem :)

du denkst sehr positiv :-)

Hanna
03.04.2003, 05:18:35
.... aber sicher

Hanna
03.04.2003, 16:12:57
Hallo Jungs,

habe das ganze noch etwas erweitert (und hübscher in der Ausgabe gemacht)

$col_array = array('beschreibung');
for($i = 0; $i < count($col_array); $i++){
$result = mysql_query("SELECT COUNT(".$col_array[$i].") FROM buedis_favoriten WHERE beschreibung = 'PHP';");
$menge = mysql_fetch_row($result);
print '<font face=arial size=-1>In der '.$col_array[$i].' Favoriten wurde/n '.$menge[0] .' Einträge unter <b>PHP</b> gefunden.<br>';
}

Ich glaube Dank euch habe ich das System einigermaßen Verstanden. In dem Buch "Programmieren mit PHP" aus dem O'Reilly Verlag, habe ich noch einige Interessante Ansätze gefunden.

Zur Zeit löse ich nämlich mein zweites Problem dadurch das ich die selbe Abfrage zwei mal untereinander mit verschiedenen Parametern laufen lasse. Aber ich denke das geht auch noch anders. Will mal sehen ob ich das zum laufen bringe. Wenn nicht...

ich weis ja wo ich euch finde :)

Schöne Grüße Hanna