SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 19.10.2004, 14:44:54
Spower Spower ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 5
Zählen gleicher Datensätze (2 Spalten)

Hallo Leute!

Kann mir jemand vielleicht bei folgenden Problem helfen. Ich suche eine mySQL query , die mir gleiche Datensätze zählt. Allerdings können sich die Daten in zwei Spalten unterscheiden!

Tabelle:
Spalte A | Spalte B
12 | b
14 | a
23 | a
12 | b
34 | d
43 | e
54 | a
12 | a
14 | a
14 | a

Ergebnis:
Datensatz (12-b) 2x
Datensatz (12-a) 1x
Datensatz (14-a) 3x
Datensatz (34-d) 1x
u.s.w.

Ich bekomm es einfach nicht hin, dass er mit die Datensätz zählt. Will ja nicht, dass er alle "a" oder alle "12" zusammenfasst! Kann mir jemand helfen!

Danke im voraus

Geändert von Spower (19.10.2004 um 15:12:04 Uhr)
Mit Zitat antworten
  #2  
Alt 19.10.2004, 16:23:18
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
SELECT spalteA, spalteB, COUNT( * ) AS amount FROM table JOIN table ON spalteA = spalteA AND spalteB = spalteB GROUP BY spalteA

so in etwa?
Mit Zitat antworten
  #3  
Alt 19.10.2004, 17:05:40
Spower Spower ist offline
Anfänger
 
Registriert seit: Aug 2004
Beiträge: 5
Hab's mittlerweile selber rausgefunden :-)

Ersmal Danke Feuervogel! Weiß zwar nicht, ob dein query auch geht, aber trotzdem Danke.

Für alle die es interessiert:
SELECT spalteA, spalteB, COUNT(spalteA) as number FROM table GROUP BY spalteA, spalte B ORDERED BY spalteA DESC

Das ausschlaggebende war der Ausdruck:
GROUP BY spalteA !!,!! spalteB

Geändert von Spower (19.10.2004 um 17:12:32 Uhr)
Mit Zitat antworten
  #4  
Alt 24.09.2006, 16:25:26
FrankyH FrankyH ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 6
Erweiterungsfrage (AW: Zählen gleicher Datensätze)

Hallo
ich hab da mal ne Erweiterungsfrage

Der Befehl
PHP-Code:
SELECT COUNT(spalteFROM zeile 
gibt mir ja nun die Gesamtanzahl aller in dieser Spalte befindlichen Werte aus.
Beispielsweise dann 12. Diese 12 setzt sich bei mir dann allerdings aus 9 Festwerten und "3 leeren Werten" zusammen.

Erläuterung. Manche Felder sind mit NULL gefüllt und manche sind halt leer. Diese leeren Felder werden in einer allgemeinen Abfrage zu den Festwerten dazugerechnet. Das soll so nicht sein.
Kann mir jemand sagen, wie die Abfrage lauten muss, um nur die Festwerte zu counten?

Als Festwert, die der User in die db Schreiben darf habe ich nur 3 verschiedene Werte, nämlich die Farben: Rot, Gruen, Blau.

Normalerweise wird doch dafür geschrieben,
PHP-Code:
SELECT (farbenFROM zeile WHERE id <> Rot and id <> Gruen and id <> Blau
Kommt hier Count Befehl dazu, läuft das so nicht mehr. Kann mir da jemand auf die Sprünge helfen?

Thx Franky
Mit Zitat antworten
  #5  
Alt 24.09.2006, 16:48:57
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Zählen gleicher Datensätze

... WHERE `spalte` IS NOT NULL AND `spalte` != ''

so vielleicht?
Mit Zitat antworten
  #6  
Alt 24.09.2006, 16:49:52
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Erweiterungsfrage (AW: Zählen gleicher Datensätze)

Zitat:
Zitat von FrankyH
Kommt hier Count Befehl dazu, läuft das so nicht mehr. Kann mir da jemand auf die Sprünge helfen?
meistens die dazugehörige fehlermeldung des mysql-servers, die du mit mysql_error() bekommst :-)
Mit Zitat antworten
  #7  
Alt 24.09.2006, 17:26:22
FrankyH FrankyH ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 6
AW: Zählen gleicher Datensätze

Dank dir erstmal für den Lösungsversuch, es liegt immer noch an der Abfrage im allgemeinen.
Das Ding hier läuft problemlos, wenn alle Zeilen der Spalte entweder einen Festwert oder den Wert NULL haben. Ist eine Zelle jedoch leer, gibts den Fehler siehe unten. Hier erstmal das gesamte Konstrukt:
PHP-Code:
<?php
$sqlhost
='xxx'
$username='xxx'
$passwort='xxx'
$database='xxx'
$link mysql_connect($sqlhost$username$passwort);
mysql_select_db($database$link);
$abfrage "SELECT COUNT(farben) FROM settings";
$result mysql_query($abfrage,$link);
$count mysql_result($result,0);
?>
Wenn ich ne Fehlerhafte Abfrage produziere, bekomme ich den Hinweis
"mysql_result(): supplied argument is not a valid MySQL result resource on line 10"
Also ein Systaxproblem in Zeile 8 bei der Abfrage. ODer lieg ich da falsch?

Wenn ich die Abfrage um deinen Vorschlag erweitere bekomme ich immer noch das falsche Ergebnis, wo die leeren Felder mit addiert werden.
Bei mir ist grad eh Try and Error angesagt, aber das dauert halt und gebracht hats noch nicht das Erhoffte.

Als Beispiel sieht die Spalte Farben übrigens so aus.

Code:
Farbe
NULL
ROT
BLAU
BLAU
ROT
NULL
NULL

GRUEN
NULL

ROT
NULL
GRUEN
Die Abfrage oben bringt mir 9 als Ergebnis, obwohl nur 7 Farben eingetragen sind. Die beiden leeren Felder werden also mit addiert.
Es gibt allerdings keine Chance, den Eintragsvorgang zu verändern, so dass leere Felder gar nicht erst entstehen können, daher muss das wohl über eine weitere Abfrage gemacht werden.
Ich setz mich mal noch ne Weile hin, kann ja so schwierig nicht sein.
Wenn mir trotzdem jemand noch die Syntax der Abfrage im genauen Wortlauf anbieten kann, nehm ich die natürlich ;-)

Thx again
Franky

Geändert von FrankyH (24.09.2006 um 17:32:00 Uhr)
Mit Zitat antworten
  #8  
Alt 24.09.2006, 17:38:09
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Zählen gleicher Datensätze

was erhälst du für eine ausgabe, wenn du statt

$result = mysql_query($abfrage,$link);

das schreibst:

$result = mysql_query($abfrage,$link) or die( mysql_error() );
Mit Zitat antworten
  #9  
Alt 24.09.2006, 17:47:25
FrankyH FrankyH ist offline
Anfänger
 
Registriert seit: Aug 2006
Beiträge: 6
AW: Zählen gleicher Datensätze

Hallo Feuervogel,

ich habs jetzt nochmals reinkopiert und erweitert wie du geraten hast.
Damit erhalte ich keine Fehlermeldung mehr und die Zahl (Ergebnis) stimmt. Wenn ich mir das aber so anschaue, kann das nur entweder ein Hochkommata oder ein anderer Tippfehler meinerseits gewesen sein...

Hier mal das lauffähige vollständige Konstrukt für alle die sowas auch mal benötigen.

PHP-Code:
$sqlhost='xxx'
$username='xxx'
$passwort='xxx'
$database='xxx'
$link mysql_connect($sqlhost$username$passwort);
mysql_select_db($database$link);
$abfrage "SELECT COUNT(spalte) FROM zeile WHERE `spalte` IS NOT NULL AND `spalte` != ''";
$result mysql_query($abfrage,$link) or die( mysql_error() );
## $result = mysql_query($abfrage,$link);
$count mysql_result($result,0); 
Thx Franky
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:38:04 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt