php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.05.2006, 16:43  
Neuer Benutzer
 
Registriert seit: 14.05.2006
Beiträge: 8
rotzlöffel
Standard Werte aus gesamter Spalte zählen

Ich hab folgendes Problem:

ich speichere Datensätze in der Form "12,15,48,86" in einer Spalte eine MySQL Tabelle ab. Nun hab es bereits hinbekommen, dass er mir dann zählt wieviele Werte in dem Beispiel 4 durch Komma getrennt sind. Nun habe ich bereits 34 Datensätz in der Spalte mit immer unterschiedlichen Werten. Ich möchten nun allerdings die Gesamtzahl aller Werte in der Spalte ermitteln. Habe da auch schon bereits an einer SQL Abfrage gedacht, bei der ich alles in ein Array einlese und aus dem Array per explode die Anzahl Werte die durch ein Komma getrennt sind.

Hier meine Skript-Ausschnitt:
Code:
$ad = "SELECT $spalte FROM $tab";
$res = mysql_db_query($dbase, $ad);

while($row = mysql_fetch_assoc($res)) 
{  
  $alle = explode(",", $row);
}
echo $alle;
Allerdings erhalte ich immer wieder nur als Ausgabe "1". Bin ziemlich ratlos und Frage mich auch ob mein Lösungsansatz richtig ist.
rotzlöffel ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.05.2006, 16:46  
Erfahrener Benutzer
 
Registriert seit: 25.08.2005
Beiträge: 250
PHP-Kenntnisse:
Fortgeschritten
FireFIghter
Standard

Du möchtest also wissen wieviele Spalten du in deiner Datenbank hast?
FireFIghter ist offline  
Alt 14.05.2006, 16:49  
Neuer Benutzer
 
Registriert seit: 14.05.2006
Beiträge: 8
rotzlöffel
Standard

nein, ich möchte wissen wieviele Zahlen getrennt durch ein Komme in der gesamten Spalte sind. Also wenn ich jetzt drei Datensätz mit jeweils den Eintrag "1,2,3" (3 Werte) haben, sollte das Ergebniss 9 sein.
rotzlöffel ist offline  
Alt 14.05.2006, 16:58  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Ne, er hat eine Spalte, in der Daten der Form "1,2,3,4" stehen. Er möchte nun die Gesamtzahl aller Werte der gesamten Spalte haben. Stimmts?
Bsp: Eine Zeile "1,2,3,4", zweite Zeile "1,2,3", dann ist das Ergebniss 7, weil insgesamt 7 Einträge auftauchen

Zur Frage:
1. Wieso überhaupt mysql_fetch_assoc, wennde die Assoziativität später nicht mehr nutzt?
2. Du "explodest", was logischerweise ein Array zurück gibt. Du gibst es allerdings per echo aus.
3. Du weist dem array immer wieder ein neues Array zu.
4. Du "explodest" die ganze zeile, nicht nur die Spalte

Mein Lösungsvorschlag (ungetestet)
PHP-Code:
$ad "SELECT $spalte FROM $tab";
$res mysql_db_query($dbase$ad);

$alle = array();
while(
$row mysql_fetch_row($res))

  
$alle array_merge($alle,explode(","$row[0]));
}
echo 
array_count($alle); 
KingCrunch ist offline  
Alt 14.05.2006, 17:06  
Neuer Benutzer
 
Registriert seit: 14.05.2006
Beiträge: 8
rotzlöffel
Standard

ja, meine Code ist ziemlicher murcks. Bei deinem Lösungsvorschlag bekomm ich leider nur ein "Array" zurückgeliefert.
rotzlöffel ist offline  
Alt 14.05.2006, 17:09  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

so ein quark!!!!!einseinself

mein lösungsvorschlag: ändere dein db-design.

ansonsten: entferne die kommata, berechne den längenunterschied und summiere über die spalte - sollte alles per sql gehen. aber: s.o.
__________________
derHund ist offline  
Alt 14.05.2006, 17:15  
Neuer Benutzer
 
Registriert seit: 14.05.2006
Beiträge: 8
rotzlöffel
Standard

die Daten stehen bereits in der Tabelle und das Desighn zu ändern wäre viel zu aufwenig.
Ich mein was ich für eine Zeile hinbekommen habe, muss doch auch irgendwie für alle zeilen zu schaffen sein. Hierauch der Code wie es zeilenweise mache:

PHP-Code:
<php?

$sql "SELECT * FROM $tab ORDER by id ASC";
$res mysql_db_query($dbase$sql);

while(
$row mysql_fetch_object($res))
{
    
$id $row->id;
    
$d $row->doppelt;

        
$zaehledoppelte count(explode(","$d));

echo 
$zaehledoppelte;

}
?> 
kann ich denn nicht alle $zaehledoppelte zeilenweise addieren?
rotzlöffel ist offline  
Alt 14.05.2006, 17:17  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Längenunterschied? Wie denn, wenn auch zweistellige Einträge auftauchen können?

Ok, das letzte muss "array_count_values($alle)" heißen..
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 14.05.2006, 17:19  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Oder so, dann muss es allerdings
PHP-Code:
$zaehledoppelte += count(explode(","$d)); 
heißen, da sonst immer die letzte Zeile das Ergebniss darstellt. (Die variable vorher mit 0 initialisieren...)
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 14.05.2006, 17:35  
Neuer Benutzer
 
Registriert seit: 14.05.2006
Beiträge: 8
rotzlöffel
Standard

Danke KingCrunch, cool ein simples + vor dem Gleichzeichen war die Lösung .

Jetzt ist mir allerdings aufgefallen, dass wenn ich mal keinen wert in einen Datensatz eintrage und beim auslesen ein count(explode(",", $d)); durchführe und anstatt einer 0 eine 1 gezählt wird. Auch obwohl kein Komme in dem Datensatz enthalten ist.
rotzlöffel ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL-Befehl: Spalte innerhalb der Tabelle in andere Spalte... go1denboy Datenbanken 5 12.06.2008 19:06
Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt Seb PHP Tipps 2008 2 29.05.2008 11:36
Durch Spalte definieren, welche Spalte zu ändern ist. CC84 Datenbanken 5 28.11.2006 10:26
spalte rechts ausrichten, text aber trotzdem linksbündig Crypi HTML, Usability und Barrierefreiheit 5 14.09.2006 11:35
Teil einer Spalte abfragen? Peoples Datenbanken 2 20.08.2006 15:22
Spalte mit Array angleichen Zahl Datenbanken 3 16.07.2006 18:08
Select auf Spalte nur ersten 2 Werte ... andrew22 Datenbanken 1 09.05.2006 10:32
werte einer tabelle in andere tabelle speichern high_scorer Datenbanken 3 30.09.2005 16:28
3 Werte aus einer Spalte ausgeben elena Datenbanken 3 26.09.2005 15:49
MySQL - Alle Werte einer Spalte zusammenzählen nicobischof Datenbanken 5 26.08.2005 08:26
doppelte Werte / Strings einer Spalte nur einmal ausgeben... Datenbanken 2 29.07.2005 12:10
mehrere integer werte in eine spalte GrU3nL!nG Datenbanken 4 13.07.2005 17:05
Abfrage der Anzahl bestimmter Werte in einer Spalte Datenbanken 1 13.03.2005 12:30
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Spalte anlegen und in diese Daten einfügen Anuschka PHP Tipps 2004 11 09.08.2004 00:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2006/39934-werte-aus-gesamter-spalte-zaehlen.html, php array spalten zählen, mysql einträge spalte zählen, wieviel werte in einer spalte, sql suche alle zeilen die die gleichen werte in spalte haben, werte in einer spalte zählen, php sql zeilen zählen, wert in spalte zählen, sql spalten zählen, anzahl wieviel werte in einer spalte sind, php werte einer sql spalte zählen, wieviel mal wert in spalte, sql alle werte einer spalte als zeile durch komma abgetrennt, kommas in spalte zählen, php array zeile spalte zählen, wieviele werte in einer spalte sql, elemente in spalte zählen, sql zaheln in spalte zählen, anzahl werte einer spalte zählen sql, aus sql spalte komma entfernen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.