php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.04.2006, 19:52  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 184
PHP-Kenntnisse:
Anfänger
GELight sorgt für eine eindrucksvolle AtmosphäreGELight sorgt für eine eindrucksvolle Atmosphäre
GELight eine Nachricht über ICQ schicken GELight eine Nachricht über MSN schicken
Standard Ich brauche eure Hilfe beim rechnen...

Der Betreff klingt vielleicht etwas nichtsaussagend, daher erkläre ich mal kurz, was ich brauche und wo ich schon ca. 3 Tage rumprobiere und
keinen Erfolg habe. Ich brauche hier einfach mal eure Hilfe.
Ich habe hier mal den Code so abgeändert, dass die Daten nicht aus der
DB kommen sondern aus den Arrays. So kann ich es leichter zeigen und
auch local testen. Ziel ist folgendes:

Sämtliche Klassen(aus den Teilnahmen) sollen zusammengeführt
aufgelistet werden und je alle zusammengezählten Punkte einer gleichen
Klasse soll förmlich daneben stehen. Dafür ist die AusgabeAnweisung
unten gedacht. ( es muss später genau in solch einer Tabellenzeile
ausgegeben werden )

So müsste es dann aussgeben:

Test100 - 10
NeuerTest - 100
Hallo111 - 80

PHP-Code:
$Teilnahmen = array(    "Test100""NeuerTest""NeuerTest""NeuerTest""NeuerTest""Hallo111""Hallo111" );
$KlassenPunkte = array    ( 10403010203050 );

$TotalPunkte 0;

echo 
"<table width='300' border='1'>";                    
$Anzahl_Teilnahmen count $Teilnahmen );    // ANZAHL DER TEILNAHMEN
for ( $t=0$t $Anzahl_Teilnahmen$t++ )    // SCHLEIFE LÄUFT SO OFT WIE TEILNAHMEN VORHANDEN SIND DURCH - HIER 5 mal
{
    
// VARIABLEN
    
$Klassenname     $Teilnahmen[$t];
    
$Punkte            $KlassenPunkte[$t];



// Hier muss das zusammenrechnen rein
// Spätere Ausgabe über die IFAnweisung"ausgeben"
// Das hier habe ich schon
    
if ( $Klassenname != $bestehende_klasse )
    {
        
$bestehende_klasse $Klassenname;
        
$ausgeben 1;
    }


    echo 
$Klassenname." ( ".$Punkte." )
"
;

    if ( 
$ausgeben == )
    {
        echo 
"<tr>";
            echo 
"<td>".$Klassenname."</td>";
            echo 
"<td>".$TotalPunkte."</td>";
        echo 
"</tr>";
                
        
$ausgeben 0;
        
$TotalPunkte 0;
    }  

// end
echo "</table>"
Ich weiß ich, ich frage hier nach einer fertigen Lösung.
Ich habe es wie gesagt jetzt ca. 3 Tage ohne Erfolg versucht
hinzubekommen aber das einzige, was ich schaffe ist, die Klassen
zusammengeführt ausgeben zu lassen. Das errechnen der Gesamtpunkt
für jede Klasse bekomm ich einfach nicht hin. Bitte entschuldigt, dass ich
nach einer fertigen Lösung hier frage. Das Problem ist nur, dass das
ganze morgen stehen muss und ich so langsam etwas Panik schiebe, weil
ich seit tagen kein Stück weiter komme.

Über eine Lösung wäre ich natürlich absolut glücklich.
Vielleicht habt ihr aber auch einen sehr guten Denkanstoß für mich.

Mario
GELight ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.04.2006, 20:14  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Wenn ich dich richtig verstehe, sollte folgender Code dir weiterhelfen:
PHP-Code:
<?php
$Teilnahmen 
= array("Test100""NeuerTest""NeuerTest""NeuerTest""NeuerTest""Hallo111""Hallo111" );
$KlassenPunkte = array    ( 10403010203050 );
$Teilnahmen_Punkte = array();
for(
$i=0;$i<count($Teilnahmen);$i++) {
        
$name $Teilnahmen[$i];
        if(isset(
$Teilnahmen_Punkte[$name]))
                
$Teilnahmen_Punkte[$name] += $KlassenPunkte($i);
        else
                
$Teilnahmen_Punkte[$name] = $KlassenPunkte($i);
}
foreach(
$Teilnahmen_Punkte AS $Klassenname => $TotalPunkte) {
        echo 
"<tr>
                <td>"
.$Klassenname."</td>
                <td>"
.$TotalPunkte."</td>
              </tr>"
;
}
?>
Ich habe es jetzt so gebaut, dass es irrelevant ist, ob in den Arrays die einzelnen Klassen immer hintereinandergelistet sind, d.h. es muss nicht aabbbbc aufgebaut sein, sie können auch in der reihenfolge babbcab oder so vorliegen - ob dies der Fall ist wurde aus deinen Ausführungen leider nicht ersichtlich.

Ps.: Trotzdem eine gute Problembeschreibung - behalt deinen "Frage-Stil" bei.
Buhmann ist offline  
Alt 06.04.2006, 20:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Irgendwie redest du und hast nichts gesagt - ich verstehe nicht so ganz
was du machen willst. Was sind denn deine Klassen? Erzähl mal worum es
geht, damit ich mir dazu was vorstellen kann.

Außerdem läuft deine Schleife 7x durch.

Hmm so beim schreiben verstehe ich was du machen willst.
PHP-Code:
<?php
$total 
= array();
for (
$i 0$max count($teilnehmer); $i $max$i++) {
  
$total[$teilnehmer[$i]] += $klassenpunkte[$i];
}
$klassen array_unique($teilnehmer);
print 
'<table>';
for (
$k 0$max count($klassen); $k $max$k++) {
  
printf('<tr><td>%s</td><td>%u</td></tr>%s'$klassen[$i], $total[$klassen[$i]], "\n");
}
print 
'</table>';
?>
Ist es das?
Probier dich bei deiner Fragestellung auf das wesentliche zu
konzentrieren, aber vergiss den Kontext nicht
Zergling-new ist offline  
Alt 06.04.2006, 21:51  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 184
PHP-Kenntnisse:
Anfänger
GELight sorgt für eine eindrucksvolle AtmosphäreGELight sorgt für eine eindrucksvolle Atmosphäre
GELight eine Nachricht über ICQ schicken GELight eine Nachricht über MSN schicken
Standard

Danken möchte ich euch beiden schonmal...

Die Variante von Buhmann hat funktioniert so wie sie ist.
Deine Variante von dir Zergling, da weiß ich ehrlich gesagt nicht, ob sie geht, da ich ehrlich gesagt nicht ganz durchsteige, was da wie passiert im Script.
Also ich hab es nicht geschafft das ganze in mein eigenes einzubauen oder anzupassen.

Das Script von Buhmann läuft zwar super aber ich müsste es etwas abändern, wenn das möglich ist. Mir fehlt noch etwas an Erfahrung im Umgang mit mehrdimensionalen Arrays. Ihr wendet ja beide diese an oder?

Das Endergebnis ist schonmal genau so, wie es sein muss. Problem, was ich jetzt habe wäre folgendes: Der Klassenname + die Punkte sind nur 2 von 5 Werten, die später in der Tabellenzeile stehen müssen. Die Auswertung der noch kommenden Werte in der Tabelle müssen seperat Ausgewertet werden um dann in der Tabellenzelle ausgegeben werden zu können. Somit würde ich ein Problem mit der foreachVariante bekommen. Vielleicht kann man das ja noch erweitern.

Bildlich denke ich es mir so.
Vielleicht hilft das besser.


Wenn ich wie jetzt stehend die foreachVariante nehme,
dann bekomm ich da die weiteren werte nicht mit angezeigt, da diese ja nicht mit in diesem Array vorhanden sind. Oder wie kann ich hier noch mehr werte in das array schreiben und auslesen lassen?

Ich vermute jetzt kommt ihr durcheinander was?

Mario
GELight ist offline  
Alt 06.04.2006, 22:07  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Ich habe keine mehrdimensionale arrays benutzt - der aufbau des neu erstellten arrays ist
klassenname => punkte

In deiner forschleife hast du doch sicherlich eine variable für den namen der klasse - angenommen dieser wäre $name, könnte der part so aussehen:
PHP-Code:
<?php
 
        
echo "<tr>
                <td>"
.$name."</td>
                <td>"
.$Teilnahmen_Punkte[$name]."</td>
              </tr>"

?>
(falls ich dich diesmal richtig verstanden habe)
Buhmann ist offline  
Alt 07.04.2006, 12:37  
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 184
PHP-Kenntnisse:
Anfänger
GELight sorgt für eine eindrucksvolle AtmosphäreGELight sorgt für eine eindrucksvolle Atmosphäre
GELight eine Nachricht über ICQ schicken GELight eine Nachricht über MSN schicken
Standard

Du hast Recht Buhmann,

Es ist wirklich kein mehrdimensionales Array.
Das zeigt mir wieder, wo ich mich noch mehr beschäftigen muss.

Kurz gesagt: Ich habs jetzt hinbekommen, wie ich wollte.
Vielen Dank nochmal an euch beide.
Wieder eine Erfahrung mehr hier im Umgang mit Arrays.

Mario
GELight ist offline  
Alt 07.04.2006, 14:20  
Erfahrener Benutzer
 
Registriert seit: 14.10.2005
Beiträge: 153
Fatal Error
Standard

Ich hätte das ganze so gelöst ^^

PHP-Code:
<?php
$Teilnahmen 
= array("Test100""NeuerTest""NeuerTest""NeuerTest""NeuerTest""Hallo111""Hallo111" );
$KlassenPunkte = array    ( 10403010203050 );

foreach(
$Teilnahmen as $teilahmen_index=>$teilahmen_value){
    
$zusammenfassung[$teilahmen_value][] = $KlassenPunkte[$teilahmen_index]
}

foreach(
$zusammenfassung as $index=>$value){
    echo 
$index.' - '.array_sum($value).'
'
;
}
?>
Aber da bei dir schon alles läuft ^^
Fatal Error 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
Brauche hilfe mik08 PHP Tipps 2008 10 27.07.2008 16:17
Datenbanktabelle erstellen - brauche Hilfe Raccoon PHP Tipps 2008 1 14.06.2008 11:03
Ich brauche eure Hilfe PHP Tipps 2006 22 19.02.2006 19:57
Brauche mal etwas hilfe beim Rechnen.... PHP Tipps 2006 1 18.02.2006 19:11
PHP <--> MySQL | Brauche Hilfe ahnungsloser Datenbanken 18 16.02.2006 21:49
brauche eben hilfe PHP Tipps 2007 2 26.11.2005 08:36
brauche sehr schnell und dringend hilfe Beitragsarchiv 13 24.10.2005 13:11
HILFE ! Brauche ganz dringend hilfe! PHP Tipps 2005-2 2 10.10.2005 23:08
brauche hilfe!!! marcelglaeser HTML, Usability und Barrierefreiheit 0 03.10.2005 20:01
Hilfe, Ich brauche hilfe! Kevin PHP Tipps 2005-2 2 27.09.2005 19:31
BRAUCHE DRINGENDE HILFE !!! PHP Tipps 2005-2 2 06.08.2005 19:45
Brauche Hilfe bei preg_match() PHP Tipps 2005-2 2 23.07.2005 22:44
Brauche dringend Hilfe, Aufgabe fürs Studium (Upload-Script trivial Beitragsarchiv 23 23.06.2005 16:25
Brauche Hilfe PHP Tipps 2005 5 11.01.2005 15:30
Brauche Hilfe - kenne mich nicht aus - zahlen auch dafür Beitragsarchiv 1 09.08.2004 16:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
hilfe beim rechnen, http://www.php.de/php-tipps-2006/38896-ich-brauche-eure-hilfe-beim-rechnen.html, mit array rechnen php, php klasse erstellen rechnen mit array, ich brauche rechnen hilfe, ean berechnen mit php array, ich brauche eine helfe für rechnen für klasse 4, vektoren berechnen php array, mit array [] rechnen, ich brauche hilfe beim rechnen, rechnen mit html, rechen lösungen schreiben tips und hilfe für 4 klasse, php rehnen foreach, php mit arrays rechnen, html rechnen array, php rechnen mit einer foreach, rechnen mit mehrdimensionalen array php, ich brauche hilfe kann nicht rechnen, php foreach array multiplizieren, abfrage php array rechnen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:32 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.