| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

05-05-2010, 13:41
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
php berechnung
hy, ich habe bis jetzt ein array was so aussieht
[0] id_user = 1
pkt = 1
[1] id_user = 2
pkt = 2
[3] id_user = 3
pkt = 3
[4] id_user = 1
pkt = 3
[5] id_user = 2
pkt = 1
[6] id_user = 3
pkt = 2
........
jetzt zu meiner frage.
ich wollte gern berechnen lassen wieviel pkt der user 1,2 und 3 hat und dieses in das vorhandene array einfügen
id_user und punkte kommen in jedem array nur 1 mal vor
|

05-05-2010, 13:46
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
Zitat:
Zitat von bufffuchs
hy, ich habe bis jetzt ein array was so aussieht
|
Ist da jeweils ein Zeilenumbruch dawischen?
Zitat:
Zitat von bufffuchs
ich wollte gern berechnen lassen wieviel pkt der user 1,2 und 3
|
Zusammengenommen oder einzeln?
Zitat:
Zitat von bufffuchs
und dieses in das vorhandene array einfügen
|
Welches ist das vorhandene? Das gepostete? Da stehen die doch schon drin.
Wie du siehst, ist eine genaue und nachvollziehbare Beschreibung des Problems/Anliegens der Hauptfaktor für eine schnelle und hilfreiche Antwort.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-05-2010, 14:13
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
upps
zum besseren verständnis hier mal der link wo das array auftaucht
Formel
die punkte soll er anhand der fahrer_id zusammen zählen, also anzeigen wieviel punkte jede id bis jetzt hat und wieder ins array als neuen row einfügen.
hier mal der php code
PHP-Code:
$sql=mysql_query("SELECT e.h_pkt, pkt.saison, e.idf1_strecke, f.idf1_fahrer, f.name as fahrer, e.platz, pkt.punkte as gesamt, st.name as strecke from $ergebnis as e Left join $fahrer as f on f.idf1_fahrer = e.idf1_fahrer left join $punkte as pkt on pkt.platz = e.platz left join $strecke as st on st.idf1_strecke = e.idf1_strecke where e.jahr = 2010 order by idf1_strecke, e.platz ASC
");
echo mysql_error(); $wm_fahrer = array(); while($row=mysql_fetch_assoc($sql)){ $row['fahrer_id'] = $row['idf1_fahrer']; $row['punkte'] = $row['gesamt'];
array_push($wm_fahrer,$row);
}
|

05-05-2010, 14:38
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von bufffuchs
zum besseren verständnis hier mal der link wo das array auftaucht
|
Das Favicon macht mich ganz kirre. Schlimm, echt nervig... SCNR
Meinst du zufällig sowas wie Gruppenwechsel? Kannst du mal an einem Beispiel erläutern, was passieren soll? Entweder ist es so leicht, dass ich nicht verstehe, warum du Hilfe brauchst oder ich hab es immer noch nicht ganz verstanden, was du jetzt meinst.
Wenn du von neuer Row sprichst, meinst du damit nur das Array oder soll die auch in die DB?
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-05-2010, 16:43
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
favi fetzt 
im i.e ist es nicht da 
also.
zur zeit sieht das array ja so aus
....
[2] => Array(
[h_pkt] => 1
[saison] => 2010
[idf1_strecke] => 1
[idf1_fahrer] => 2
[fahrer] => Lewis Hamilton
[platz] => 3
[gesamt] => 15
[strecke] => Bahrain GP
[fahrer_id] => 2
[punkte] => 15
...
jetzt soll er es so berechnen das
in dem array unten dran steht [gesamt] => bsp. 34
erechnet aus dem gesamten array anhand der fahrer_id, was aus der db kommt
zb:
[2] => Array(
[h_pkt] => 1
[saison] => 2010
[idf1_strecke] => 1
[idf1_fahrer] => 2
[fahrer] => Lewis Hamilton
[platz] => 3
[gesamt] => 15
[strecke] => Bahrain GP
[fahrer_id] => 2
[punkte] => 15
[gesamt] => 34
...
|

05-05-2010, 17:34
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Den Key gesamt gibt es schon. Das ist aber was anderes, oder? Nennen wir das was du meinst mal gesamt2:
PHP-Code:
<?php foreach ($array as $k1 => $v1) { foreach ($array as $k2 => $v2) { if ($v1["idf1_fahrer"] == $v2["idf1_fahrer"]) { if (isset($v1["gesamt2"])) { $v1["gesamt2"] += $v2["punkte"]; } else { $v1["gesamt2"] = $v2["punkte"]; } } } } ?>
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (05-05-2010 um 17:38 Uhr)
Grund: Code korrigiert
|

05-05-2010, 17:51
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
also entweder icke bin blöd oder es geht nichts
habe den vode jetzt an der stelle eingfügt
PHP-Code:
$sql=mysql_query("SELECT e.h_pkt, pkt.saison, e.idf1_strecke, f.idf1_fahrer, f.name as fahrer, e.platz, pkt.punkte as gesamt, st.name as strecke from $ergebnis as e Left join $fahrer as f on f.idf1_fahrer = e.idf1_fahrer left join $punkte as pkt on pkt.platz = e.platz left join $strecke as st on st.idf1_strecke = e.idf1_strecke where e.jahr = 2010 order by idf1_strecke, e.platz ASC
");
echo mysql_error(); $wm_fahrer = array(); while($row=mysql_fetch_assoc($sql)){ $row['fahrer_id'] = $row['idf1_fahrer']; $row['punkte'] = $row['gesamt']; foreach ($wm_fahrer as $k => $v) { if (isset($v["gesamt2"])) { $v["gesamt2"] += $v["punkte"]; } else { $v["gesamt2"] = $v["punkte"]; } }
array_push($wm_fahrer,$row);
}
wenn ich jetzt das ausgeben lasse
PHP-Code:
echo "Das Element " . $k . " enthält den Wert: " . $v . "<br>";
kommt
Das Element 38 enthält den Wert: Array
|

05-05-2010, 18:14
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Das Array über das du läufst, wird doch in deiner while-Schleife gerade erst erzeugt, das bringt so gar nichts. Am einfachsten in deinen Code zu integrieren wäre es, wenn du das komplett nach deiner while-Schleife machst und $array durch $wm_fahrer ersetzt, aber alles andere so lässt.
Kann es sein, dass du meine erste Version genommen hast? Ich hatte es 3 Minuten später nochmal korrigiert.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-05-2010, 18:40
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
stimmt habe ich genommen 
habe es jetzt mal hinter die while schleife gesetzt und die ausgabe mit echo wieder gemacht
PHP-Code:
$sql=mysql_query("SELECT e.h_pkt, pkt.saison, e.idf1_strecke, f.idf1_fahrer, f.name as fahrer, e.platz, pkt.punkte as gesamt, st.name as strecke from $ergebnis as e Left join $fahrer as f on f.idf1_fahrer = e.idf1_fahrer left join $punkte as pkt on pkt.platz = e.platz left join $strecke as st on st.idf1_strecke = e.idf1_strecke where e.jahr = 2010 order by idf1_strecke, e.platz ASC
");
echo mysql_error(); $wm_fahrer = array(); while($row=mysql_fetch_assoc($sql)){ $row['fahrer_id'] = $row['idf1_fahrer']; $row['punkte'] = $row['gesamt'];
array_push($wm_fahrer,$row);
} foreach ($wm_fahrer as $k1 => $v1) { foreach ($wm_fahrer as $k2 => $v2) { if ($v1["idf1_fahrer"] == $v2["idf1_fahrer"]) { if (isset($v1["gesamt2"])) { $v1["gesamt2"] += $v2["punkte"]; } else { $v1["gesamt2"] = $v2["punkte"]; } } } } $smarty->assign('date',$date);//postvar an smarty übergeben $smarty->assign('wm_fahrer',$wm_fahrer);
echo "Das Element " . $k1 . " enthält den Wert: " . $v1 . "<br>";
kommt das selbe
FormelDas Element 39 enthält den Wert: Array
|

05-05-2010, 18:50
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Na ist doch aber weithin bekannt, dass man Arrays nicht mit echo ausgeben kann. Warum nimmst du nicht print_r, um zu sehen, was drin steht?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

05-05-2010, 19:03
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
habs jetzt so
PHP-Code:
$wm_fahrer = array(); while($row=mysql_fetch_assoc($sql)){ $row['fahrer_id'] = $row['idf1_fahrer']; $row['punkte'] = $row['gesamt']; array_push($wm_fahrer,$row);
} foreach ($wm_fahrer as $k1 => $v1) { foreach ($wm_fahrer as $k2 => $v2) { if ($v1["idf1_fahrer"] == $v2["idf1_fahrer"]) { if (isset($v1["gesamt2"])) { $v1["gesamt2"] += $v2["punkte"]; } else { $v1["gesamt2"] = $v2["punkte"]; } } } print_r( "Das Element " . $k1 . " enthält den Wert: " . $v1["gesamt2"] . "<br>"); $smarty->assign('k1',$v1["gesamt2"]); }
$smarty->assign('date',$date);//postvar an smarty übergeben $smarty->assign('wm_fahrer',$wm_fahrer);
geht also 
danke dir.
jetzt habe ich noch das problem, wie bekomme ich die werte in meine tpl.
ind der tpl sieht es ja so aus zur zeit
PHP-Code:
{foreach from=$wm_fahrer item='fa'} <tr> <td>{$fa.fahrer}</td> </tr> {/foreach}
wie bekomm ich jetzt zu dem fahrer die dazugehörige gesamtpunktzahl ?
ich weiss, fragen über fragen
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
Ähnliche Themen
|
| Thema |
Autor |
Forum |
Antworten |
Letzter Beitrag |
|
berechnung
|
dani_o |
PHP Developer Forum |
5 |
18-11-2005 11:30 |
|
Berechnung
|
steiner82 |
HTML, JavaScript, AJAX und CSS |
9 |
16-11-2005 16:17 |
|
Berechnung
|
steiner82 |
PHP Developer Forum |
2 |
15-11-2005 07:55 |
|
Berechnung
|
steiner82 |
PHP Developer Forum |
44 |
01-06-2005 09:41 |
|
php berechnung
|
deepsnowdiver |
PHP Developer Forum |
2 |
08-01-2003 16:03 |
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|