php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2006, 09:04  
Gast
 
Beiträge: n/a
Standard Summe der Übergaben, alternativen zur Schleife?

Guten!

Es wird jeweils n, 1, 2 oder 3 übergeben (n steht für nicht gewählt). Also bei natur, bewaert.. kommt das an. Addiert habe ich das schon (habe ich hier gefunden).

Jetzt will ich die Zahl der Übergaben addieren, bei denen mindestens 1, 2 oder 3 steht (oder die n) ankommt. Also ich will dadurch den Durchschnitt der Übergaben ermitteln, Ausgewählt wurden.
Geht das nur mit einer Schleife oder gibts da eine andere pfiffige Lösung?

Code:
<?
$natur=$_POST['natur'];
$bewaert=$_POST['bewaert'];
$problem=$_POST['problem'];
$energie=$_POST['energie'];
$radio=$_POST['radio'];
$elekt=$_POST['elekt'];
$therm=$_POST['therm'];
$akku=$_POST['akku'];
$micro=$_POST['micro'];
$diff=$_POST['diff'];
$hygro=$_POST['hygro'];
$trock=$_POST['trock'];
$sorp=$_POST['sorp'];
$gase=$_POST['gase'];
$geruch=$_POST['geruch'];

$gesamt = $natur + $bewaert + $problem + $energie + $radio + $elekt + $therm + $akku + $micro + $diff + $hygro + $trock + $sorp + $gase + $geruch;
if ($submit)
	{
		echo number_format($gesamt, 2);   
	}
?>Die Summe: <? echo $gesamt;  

$durch = $gesamt /  ??$zahl??;

?>
Der Bewertungsschnitt: <? echo $durch; ?>
bei: <? echo $zahl; ?> Bewertungen.
Schönen Tag noch.
Hier schneits

Antonius
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.02.2006, 09:10  
Erfahrener Benutzer
 
Registriert seit: 21.08.2003
Beiträge: 468
Spyker
Spyker eine Nachricht über ICQ schicken
Standard

ja eien Schleife ist schon Sinnvoll weil du willst ja die 'n'´s raus haben.
Wenn du es geschickt anstellst (array_keys auf _POST) dann kannste es auch so machen das wenn das Form erweitert wird die PHP datei nicht angepasst werden muss.

Was spricht den gegen eine Schleife?

Hier schneits auch (fast regen)
__________________
Typo3 Suchmaschinenoptimierung <- alles Rund um SEO mit Typo3
Spyker ist offline  
Alt 09.02.2006, 09:35  
Gast
 
Beiträge: n/a
Standard



Hört sich leicht an 'array_keys auf _POST' und ist es sicher auch, wenns in der Birne ist, weils mal gefunzt hat.

Wie mach ich denn das, wenn ichs geschickt anstelle.
Bin beim Suchen nicht sehr erfolgreich gewesen.

Das Antonius ...
 
Alt 09.02.2006, 09:39  
Erfahrener Benutzer
 
Registriert seit: 21.08.2003
Beiträge: 468
Spyker
Spyker eine Nachricht über ICQ schicken
Standard

mit array_keys kommst du an die index des POST array´s weil im index ja kein numerische wert steht sondern ein String.

Dann kannst du ganz normal mit einer for schleife über das array gehen und hast auch die Keys um diese auszulesen.

http://de.php.net/array_keys

Nur must du die Post Variablen ausschließen die nicht mitgerechnet werden sollen.
Ich würde es mit ausschließen machen statt festzulegen welche er rechnen soll, damit wenn du das Basis Form erweiterst automatisch die Werte mitgerechnet werden.

Aber ich weiß die Funktion ja nicht ganz, kann also gut oder schlecht sein

Beste,
Tim
__________________
Typo3 Suchmaschinenoptimierung <- alles Rund um SEO mit Typo3
Spyker ist offline  
Alt 09.02.2006, 11:13  
Gast
 
Beiträge: n/a
Standard

Hallo!

ich bekomme array_keys nicht auf die Reihe.

Einzig eine Liste der beteiligten Einträge.
Code:
Array ( [0] => natur [1] => bewaert [2] => problem [3] => energie [4] => radio [5] => elekt [6] => therm [7] => akku [8] => micro [9] => diff [10] => hygro [11] => trock [12] => sorp [13] => gase [14] => geruch [15] => submit )
Aber wie komme ich an die Sachen (Werte) die da drinnen stehen?

Antonius, die Sonne kommt durch
 
Alt 09.02.2006, 12:44  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

An die Werte kommst Du ganz einfach:

Mit jedem einzelnen Eintrag in Deinem Array kannst Du wieder in $_POST[] reingreifen.

$_POST[$KeyArray[0]] ist mit Deinen angegebenen Werten identisch mit $_POST['natur']
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 09.02.2006, 12:44  
Erfahrener Benutzer
 
Registriert seit: 21.08.2003
Beiträge: 468
Spyker
Spyker eine Nachricht über ICQ schicken
Standard

Pseudo Code:

$key = array_keys($_GET);
for($i = 0; sizeof($_GET); $i++)
// arbeiten mit $_GET[$key[$i]] <- Wert

Beste,
Tim
__________________
Typo3 Suchmaschinenoptimierung <- alles Rund um SEO mit Typo3
Spyker ist offline  
Alt 09.02.2006, 14:34  
Gast
 
Beiträge: n/a
Standard

Hätte ja gehen können
Leider tut es da aber nicht tun
Hier zeigt er mir in der if-Zeile Klammerfehler an

Code:
Parse error: syntax error, unexpected ')', expecting ']'
Aber dabei wird es wohl nicht bleiben, wenn nicht der Fehler jetzt schon woanders liegt

Code:
$ar = 0;
While ($ar < 15)
	{
		if ($_POST[$KeyArray[$ar] == "n")
		{
		$ns++;
		$ar++;
		}
			else
			}
			$zs++;
			$ar++;
			{
	}
	
echo $ns;
?>

<?
echo $zs;
Aber mit einigen Sachen tue ich mich sehr schwer.
Ich kann auch z.B. nicht rauchen

Antonius dem gerade die Bude einschneit.
Mensch haben wir April?
 
Alt 09.02.2006, 14:37  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von ah-tonius
if ($_POST[$KeyArray[$ar] ]== "n")
Einfach richtig abschreiben...
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 09.02.2006, 15:12  
Gast
 
Beiträge: n/a
Standard

Hilfe ich hatte meine Brille nicht auf
Danke für die Augen.

Aber nachdem 'n' nicht gefunden wurde, habe ich n auf 0 umgestellt.
Aber 0 wird auch nicht erkannt. Es wird immer über else gegangen oder wenn ich statt ==, !=, oder > etc. auch mal immer über if.

Es kommen 0 und andere Zahlen per POST an und $natur etc. haben den Wert.

PHP-Code:
<?php
$ar 
0;
While (
$ar 15)
    {
        if (
$_POST[$KeyArray[$ar]] == 0)
        {
        
$ns++;
        
$ar++;
        }
            else
            {
            
$zs++;
            
$ar++;
            }
    }
    
echo 
$ar;
echo 
$ns;
?>

<?
echo $zs;

?>
 
 


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
Schleife nach Tastendruck beenden schnurzli PHP Tipps 2006 7 24.03.2006 18:56
Warum wird die erste Schleife nur einmal durchlaufen ? PHP Tipps 2006 12 03.03.2006 20:04
array als Schleife verwenden cyberholic Datenbanken 6 12.01.2006 13:14
Schleife nur 1x durchlaufen PHP Tipps 2007 9 16.12.2005 13:44
[Erledigt] While schleife in while schleife = nur ein datensatz?! PHP Tipps 2005-2 9 28.10.2005 12:48
for Schleife -> unterbrechen, Befehl einfügen, fortsetzen PHP Tipps 2005-2 7 10.10.2005 21:05
while schleife in einer while schleife beim tmpl-sys PHP Tipps 2005-2 0 27.07.2005 15:07
Summe mehrerer Datensätze faux Datenbanken 2 28.05.2005 19:38
While Schleife Beatbox Off-Topic Diskussionen 8 19.05.2005 21:55
while schleife beenden PHP Tipps 2005 3 29.03.2005 20:35
IF ELSEIF ELSEIF ELSE mit While Schleife PHP Tipps 2005 9 04.03.2005 23:27
Variabel aus while schleife ausserhalb der schleife nutzen PHP Tipps 2005 8 12.02.2005 18:04
CRC Summe einer Datei ermitteln?? PHP Tipps 2004 1 14.10.2004 09:23
[Erledigt] Statement in Schleife Datenbanken 5 10.09.2004 12:11
versteh diese do-while schleife nicht PHP Tipps 2004 5 08.09.2004 16:54


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