1Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
282
282
EMPFEHLEN
-
25.01.12 00:05 #1
- Registriert seit
- Mar 2009
- Beiträge
- 171
Ich habe mehrere Arrays, hier im Beispiel 4 mit verschiedenen Einträgen.
Wie kann ich diese summieren, so dass wie hier im Beispiel als Summe 15 heraus kommt?
Mit sum(), count(), sum_array() usw. komme ich hier nicht weiter...
Array
(
[0] => 2
)
Array
(
[0] => 6
)
Array
(
[0] => 4
)
Array
(
[0] => 3
)
-
Hi
sind die Array selber Elemente eines Arrays?
Oder passen sie irgendie wurch den Namen zusammen?
Dann mach eine Schleife.
Sonst geht nur a+b+c+d+...Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Oder mit einem array_merge() zusammenziehen und mit array_sum() die Summe bilden
PHP-Code:$a = Array(0 => 2);
$b = Array(0 => 6);
$c = Array(0 => 4);
$d = Array(0 => 3);
echo array_sum(array_merge($a, $b, $c, $d));
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.01.12 10:28 #4
- Registriert seit
- Mar 2009
- Beiträge
- 171
Hier mal mein Konstrukt vereinfacht:
Ich treffe eine Kundenvorauswahl in der ersten Abfrage, um in der zweiten die KFZ des jeweiligen aufzulisten.
Ausgabe hier:PHP-Code:<?PHP
foreach ($_POST['auswahl'] as $nummern) {
$sb = mysql_query("SELECT KDNR FROM ".$kunden." WHERE KDNR = '".$nummern."');
$zeile = mysql_fetch_array($sb);
$kfzz = mysql_query("SELECT AMTKZ FROM ".$kfz." WHERE KDNR = '".$zeile['KDNR']."'");
$anz_kfz = mysql_num_rows($kfzz);
echo "<pre>". print_r($anz_kfz, true) ."</pre>";
}
?>
2
6
4
3
wenn ich es so mache:
hab ich folgende Ausgabe:PHP-Code:<?PHP
foreach ($_POST['auswahl'] as $nummern) {
$sb = mysql_query("SELECT KDNR FROM ".$kunden." WHERE KDNR = '".$nummern."');
$zeile = mysql_fetch_array($sb);
$kfzz = mysql_query("SELECT AMTKZ FROM ".$kfz." WHERE KDNR = '".$zeile['KDNR']."'");
$anz_kfz = mysql_num_rows($kfzz);
$anz_kfz = array($anz_kfz);
echo "<pre>". print_r($anz_kfz, true) ."</pre>";
}
?>
Array
(
[0] => 2
)
Array
(
[0] => 6
)
Array
(
[0] => 4
)
Array
(
[0] => 3
)
Das entspricht der Anzahl der jeweils zugehörigen Einträge (KFZ), wo ich die Summe benötige.
Und jetzt stelle ich mich an
-
Du hast da eine Fehlüberlgung drin. Du machst für jeden die Anzahl in einen eigenen Array und überschreibst den alten Wert.
Du hast 2 möglichkeiten.
Die einfachere: Du fügst diene Werte einem Array hinzu und summierrst am schluss
Oder aber schöner, du packst alles in ein sauberes Query.PHP-Code://Array initialisieren
$kfz = array();
foreach ($_POST['auswahl'] as $nummern) {
$sb = mysql_query("SELECT KDNR FROM ".$kunden." WHERE KDNR = '".$nummern."'");
$zeile = mysql_fetch_array($sb);
$kfzz = mysql_query("SELECT AMTKZ FROM ".$kfz." WHERE KDNR = '".$zeile['KDNR']."'");
$anz_kfz = mysql_num_rows($kfzz);
//Die Anzahl dem Array hinzufügen
$kfz[] = $anz_kfz;
}
//Summe bilden
$count= array_sum($kfz);
}
Wobei ich gerade sehe, dass du das erste Query gar nicht brauchst, da $zeile['KDNR'] immer gleich $nummern ist.
Ist KDNR eine Nummer? Sollte -also ohne die ' im SQL schreiben
Auf alle Fälle kannst du das mit einem einzigen DB-Aufruf machen was besser für die Performance ist.
Das Query
Und in PHP umgesetztCode sql:1 2 3 4 5 6
SELECT COUNT(*) AS cnt FROM {$kfz} WHERE KDNR IN ({$nummerList});
PHP-Code:$nummerList = implode(', ', $_POST['auswahl']);
$sql = "
SELECT COUNT(*) AS cnt
FROM {$kfz}
WHERE KDNR IN ({$nummerList});
";
$result = mysql_fetch_array($sql);
$count = mysql_result($result, 0);
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.01.12 11:13 #6
- Registriert seit
- Mar 2009
- Beiträge
- 171
Hast natürlich Recht, zweimal Kundennummer abfragen ist Unsinn.
Hab es jetzt so:
Die Foreach Schleife wird im Beispiel 4 mal durchlaufen (4 Kunden), und die While Schleife 15 mal (15 KFZ).PHP-Code:<?PHP
foreach ($_POST['auswahl'] as $nummern) {
$kfzz = mysql_query("SELECT AMTKZ FROM ".$kfz."
Inner Join ".$kunden." ON ".$kunden.".KDNR = ".$kfz.".KDNR
WHERE ".$kfz.".KDNR = '".$nummern."' ");
while ($kfz_zeile = mysql_fetch_array($kfzz)) {
echo $kfz_zeile['AMTKZ'].'<br>';
}
}
echo count($_POST['auswahl']);
?>
Jetzt habe ich es anders, aber immer noch nicht richtig!
Wie komme ich an die 15?
-
Dein Count() auf die Eingaebparamter bringt jetzt aber wirklich nix. Ich habe dir 2 Ansätze geliefert. Versuche einen von beiden Umzusetzen und du hast deine Summe.
Am einfachsten du nimmst mein erstes Besipiel und deine jetztiges Script und kombinierst. Alle wichtigen Punkte zur Zählung sind dort mit Kommentaren versehen.
Also, los von Rom!---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
25.01.12 11:27 #8
- Registriert seit
- Mar 2009
- Beiträge
- 171
Heureka!
Danke.
Ähnliche Themen
-
Summe
Von Flooow im Forum PHPAntworten: 5Letzter Beitrag: 30.05.11, 23:08 -
Summe PHP aus Array
Von thejoyride im Forum PHPAntworten: 3Letzter Beitrag: 30.03.10, 10:53 -
Summe der Zahlen aus dem Array
Von son gohan im Forum PHPAntworten: 4Letzter Beitrag: 20.08.06, 23:10 -
summe aus array in einem Formularfeld
Von skyhi im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 07.01.05, 11:59 -
Summe
Von Shooter2k im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 27.04.03, 17:25





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren