jhaustein
hallo gemeinschaft
im mom habe ich folgendes um die istwerte zu summieren
$abd=$row["abd"];
$ist_select="SELECT SUM(summe) AS ist FROM clients WHERE abd='$abd' ";
$ist_select .= " and Annahme >='2004-07-15'";
jetzt ist folgendes - in der spalte DBZ die neu ist, kann auch ein name stehen, den ich genauso behandeln will wie unter abd - es kann übrigens nicht sein, das im gleichen datensatz der gleiche name unter abd oder dbz steht
ich wollte sow
as schreiben wie
$ist_select="SELECT SUM(summe) AS ist FROM clients WHERE abd='$abd' or DBZ='$abd' ";
geht aber nicht
max77
Ich würde es zuerst mal mit klammern um die beiden Bedingungen probieren, also (Bedingung1) or (Bedingung2).
Ich bin mir allerdings nicht sicher, ob das mit der Summierung in dem Fall richtig klappt...
An sonsten würde ich Vorschlagen, zwei Abfragen zu machen und das Ergebnis sortiert auszugeben, dann kann es wahrscheinlich einfach addiert werden.
Gruß Dirk
jhaustein
ich glaube ich stell die frage nochmal
ich habe eine mysql tab
id_name_klasse1_klasse2_klasse3_betrag
1_müller_frank_________________100
2_meier_frank___jens___________110
3_haar__jens__________________90
4_muss__peter_________________20
jetzt möchte ich folgende ausgabe haben
frank_____210
jens______200
peter_____20
also er soll alle beträge der leute aufsummieren, die unter den klassen stehen und dann ausgeben
daHooligan
am einfachsten, du suchst die id zu den jeweiligen Namen und schreibst die für jeden Namen in ein array und liest dann die Summe für den einzelnen IDs aus und addierst die.
Also:
$frank=array(klasse1, klasse2);
mal so zum Beispiel
jhaustein
hi - problem ist nur, dass da ständig namen dazu kommen
also immer auch neue - somit geht das glaub ich nicht was du meinstest
daHooligan
dann "scannst" du zuerst nach den verschiedenen Namen....
und machst dann das was ich oben geschrieben hab..
jhaustein
kann ich leider nicht
max77
Hallo zusammen,
mit dem folgenden Code sollte es eigentlich funzen (zumindest hat es das bei mir gerade eben getan):
| php: |
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:
45:
|
<?php // Variablen zum Verbinden mit dem MySQL-Server
$server='localhost';
$user='root';
$pass='123';
$db='uebung02';
// Verbindung zum MySQL-Server herstellen
$conn=mysql_connect($server,$user,$pass);
mysql_select_db($db,$conn);
// SUMMIERUNG DER WERTE MIT 'klasse1'
// Das Ergebnis wird in einem Array aufsummiert.
$sql="SELECT klasse1 as kl_name, SUM(betrag) as betrag FROM `beitrag` GROUP BY klasse1";
$result=mysql_query($sql,$conn);
$rows=mysql_num_rows($result);
for($i=1;$i<=$rows;$i++){
$row=mysql_fetch_array($result);
$ergebnis[$row["kl_name"]]+=$row["betrag"];
}
// SUMMIERUNG DER WERTE MIT 'klasse2'
// Das Ergebnis wird in den oben erstellten Array hinzuaddiert.
$sql="SELECT klasse2 as kl_name, SUM(betrag) as betrag FROM `beitrag` GROUP BY klasse2";
$result=mysql_query($sql,$conn);
$rows=mysql_num_rows($result);
for($i=1;$i<=$rows;$i++){
$row=mysql_fetch_array($result);
$ergebnis[$row["kl_name"]]+=$row["betrag"];
}
echo 'ERGEBNIS: <br /> <br />';
// Mit ARSORT() wir das Array in umgekehrter Reihenfolge sortiert, so dass die
// groessten Werte oben stehen. --> kleinst Werte oben: asort()
arsort($ergebnis);
// Das mit den oben beschriebenen Abfragen erstellte Array wird jetzt ausgegeben.
// Der Wert von key='' muss ausgeschlossen werden, da hier die Werte summiert sind,
// denen keine 'klasse*' zugeordnet ist (einfach mal ohne testen).
for($i=1;$i<=count($ergebnis);$i++){
$zeile=each($ergebnis);
if($zeile["key"]!=''){
echo $zeile["key"]."\t".$zeile["value"].'<br />';
}
} ?> |
|
M.t.B.
@ max77:
Du hast
vergessen.
jhaustein
geht leider nicht
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\download\xampp\htdocs\testbc\beitrag.php on line 16
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\download\xampp\htdocs\testbc\beitrag.php on line 26
ERGEBNIS:
Warning: arsort() expects parameter 1
jhaustein
klappt super toll vielen dank
max77
@M.t.B.
Stimmt, sorry...
Habe nur den Code rauskopiert, nicht den ganzen Kopf usw. :-(