Antwort
 
Themen-Optionen Thema durchsuchen
Alt 28.09.2005, 13:50 Nach oben    #1
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard count() + daten

Hallo,

ich raff es gerade gar nicht mehr, wenn ich eine Abfrage mache und count benutze ..

select count(id) as count from table where user=test

aber auch gerne die Id dann im Ergbenis hätte, was muss ich hier ändern,
hinzufügen oder doch eine zweite Abfrage machen !?

Dieser versuch ist ja falsch...

select id,count(id) as count from table where user=test

Greez
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 15:12 Nach oben    #2
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard

Warum ist er falsch?

Warum zählst IDs?
Was erwartest du überhaupt als Ergebnis?
Die gezählten IDs?
Und? Und? Und?
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 15:25 Nach oben    #3
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

So bin auch nebenbei am nachlesen ...

Fehler:

Mixing of Group colums (MIN(),MAX(),COUNT(),...)
with no Group colums is illegal if there is no Group By clause

Ich bennutze das count in einer if ... (s.u.)
Ergebnis ist im Richtigen fall immer eine Zeile als Ausgabe.
Die Id benötige ich zur Weiterverarbeitung.

Sicherlich könnte ich in der if Schleife auch per mysql_num_rows() fragen aber
ich wollte diesen weg mal einschlagen ... nur kapiere ich es noch nicht so
ganz.

PHP-Code:
$sql "select count(id) as count from table where user='test' ";
$res $this->c_sql->dbquery($sql);
$itm mysql_fetch_object($res);

/* Beispeil dann ... */
if ($itm->count != 1)
    
/* mach was */
else
    
$this->bla($itm->id); // Nur wie die id oben rein !? 
Und das hier habe ich als Beispiel gefunden ...
PHP-Code:
mysqlselect Kategorie,Ortsum(Umsatz),count(distinct(Name)) 
Jetzt klarer ? Mir eben nicht
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!

Geändert von DasMööp (28.09.2005 um 15:34 Uhr).
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 15:41 Nach oben    #4
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard

Ich habe zwar immernoch nicht verstanden, was du tun willst. Völliger Blödsinn ist es aber ...

Du setzt ein COUNT() auf ID ... damit kannst du ja nur meinen, dass es mehrere IDs im Ergebnis zu user=test zu geben hat ... (sonst wäre Zählen eine ziemlich dümmliche Idee) .. wenn es aber nun mehrer IDs gibt ... welche ID willst du dann selektieren?

Ausserdam steht ja recht deutlich da, dass du ohne GROUP BY nicht auskommst. COUNT() ganz allein geht, aber um COUNT() in einem breiteren SELECT zu werden musst du gruppieren.
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 15:50 Nach oben    #5
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Ich glaube er will tetsen, ob ein Username schon in der DB existiert..?
Versuch mal sowas:
PHP-Code:
<?php
$query 
"SELECT count(id) FROM table WHERE user='test'";
?>
Dann kannst du ja z.B. mit result / mysql_fetch_row arbeiten...
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 15:50 Nach oben    #6
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Folgendes ....

1.

PHP-Code:
$sql "select id,count(id) as count from table where user=$test GROUP BY id"
$res $this->c_sql->dbquery($sql); 
$itm mysql_fetch_object($res); 

/* Beispiel dann ... */ 
if ($itm->count != 1
    
/* mach was */ 
else 
    
$this->bla($itm->id); 
2.
PHP-Code:
$sql "select id from table where user=$test "
$res $this->c_sql->dbquery($sql); 
$itm mysql_fetch_object($res); 

/* Beispiel dann ... */ 
if (mysql_num_rows($res) != 1
    
/* mach was */ 
else 
    
$this->bla($itm->id); 
So darum geht es ... das ist der einzige Unterschied ... entweder zähle ich gleich das ergenis oder ich prüfe es mit mysql_num_rows.

Es sollte immer ein einziger Datensatz rauskommen wenn $test == user ist.

Gut wie Sinnvoll es ist gleich mit zu zählen oder erst dannach da lass ich mich gerne eines besseren belehren ! Mit dem Group by steig ich immer noch
nicht ganz durch aber gibt ja noch einiges zu Lesen ... zumindest würde es
so jetzt wie (1.) funktionieren.

Zitat:
Ich glaube er will tetsen, ob ein Username schon in der DB existiert..?
@ Chris exakt das will ich machen ...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!

Geändert von DasMööp (28.09.2005 um 15:53 Uhr).
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 16:00 Nach oben    #7
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard

Setzt die Spalte UNIQUE ... wenn du dann noch COUNT() brauchst, bekommst einen Tritt ...
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 16:15 Nach oben    #8
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Öhm ... schon mal auf den Tritt vorbereit ...

Du meinst dann so ...

PHP-Code:
$sql "select id from table where user=$test "
$res $this->c_sql->dbquery($sql); 
$itm mysql_fetch_object($res); 

/* Beispiel dann ... */ 
if (empty($itm)) 
    
/* mach was */ 
else 
    
$this->bla($itm->id); 
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 20:29 Nach oben    #9
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Code:
SELECT user_id
FROM tbl_users
WHERE user_name = '{$user_name}' OR user_email = '{$user_email}'
LIMIT 1
Dann hast du direkt noch einen E-Mail-Check mit drin.
Einfach mit mysql_num_rows() schauen, ob es schon entsprechende Datensätze gibt.
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2005, 14:04 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von Lars
Einfach mit mysql_num_rows() schauen, ob es schon entsprechende Datensätze gibt.
Wir wollen dann schon bei der dafür vorgesehenen Methode bleiben, ne?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2005, 14:08 Nach oben    #11
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Verstehe gerade nicht so ganz was du meinst :>

PHP-Code:
$query "
    SELECT user_id
    FROM tbl_users
    WHERE user_name = '{$user_name}' OR user_email = '{$user_email}'
    LIMIT 1
"
;

if ( !( 
$result = @mysql_query($query) ) )
{
    die(
mysql_errno().": ".mysql_error());
}

if ( 
mysql_num_rows($result) )
{
    die(
"Username und/oder E-Mail-Adresse bereits in Benutzung.");
}

// [...] 
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2005, 14:46 Nach oben    #12
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Na, COUNT() wurde ja nicht ohne Sinn bereitgestellt.
Ich bin eigentlich der Ansicht, dass man so lange es möglich ist COUNT() verwenden sollte, da es ja irgendwie nicht wirklich was mit PHP zu tun hat

Deine Codepassage funktioniert, das habe ich nicht bezweifelt

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2005, 19:33 Nach oben    #13
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard

Mir persönlich gefällt folgende Art am besten:
-> EIntragen
-> Bei Error: Unique Key-Status-Code behandeln

Kein COUNT() .. kein *_num_rows() ... ja nichtmal eine Abfrage
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2005, 20:14 Nach oben    #14
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Dann haben wir hier drei gleichwertige Lösungen geboten :>
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.09.2005, 23:38 Nach oben    #15
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von Guradia
Mir persönlich gefällt folgende Art am besten:
-> EIntragen
-> Bei Error: Unique Key-Status-Code behandeln
Find ich gut.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

Erweiterte Suche

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hardware-RAID-Lösung robo47 Plauderecke 29 26.12.2007 04:49
[JAVA] Wie man aus Java mit einem PHP-Script kommuniziert sparrow Tutorials 0 25.03.2006 22:24
daten in array eintragen und auslesen zerberos Allgemeine Java-Programmierung 15 20.02.2005 21:49
[PHP] Wie übergebe ich Daten per URL? Ben Tutorials 0 05.12.2004 14:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:46 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44