PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ich kapier es einfach ned



robiotor
05-07-2003, 13:55
die aufgabe

$var1 hat den wert 1
$var2 hat den wert 2
wenn $var1 oder $var2 gesetzt ist multipliziere $var3 mal wert von $var1 oder $var2
wenn $var1 und $var2 gesetzt ist multipliziere $var3 mal wert von $var1 + $var3 mal wert von $var2
und speicher ergebniss in $var4

ich habe so bis jetzt die sache ausprobiert aber irgend wie scheint als würde ich mächtig was falsch machen.


$var = array('$var1' > '1' ,'$var2' => '2');

$varx = (isset($var) ? "1" : "0");

so wie weiter, oder ist das komplett falsch ?

mehlvogel
05-07-2003, 14:08
Das Problem:

Was willst du mitm Array? Was soll der Code da unten überahupat bewirken

Was mir auffällt ist, das mit deiner ersten bedingung auch dene zweite mit abgedeckt ist. Ich interpretiere deas oder mal als exklusives oder (alsu NUR 1 von beiden).

Dann würde es so aussehen:



if (!isset($var1) && isset($var2)) $var3 *= $var2;
elseif(!isset($var2) && isset($var1)) $var3 *= $var1;
elseif(isset($var1) && isset($var2)) $var3 *= ($var1 + $var2);

$var4 = $var3;


oder versteht ich nur net was du meinst?

robiotor
05-07-2003, 14:31
so ich probier das noch einmal zu beschreiben hofentlich ist es dann zu verstehen.

ich habe einen formular da sind zwei felder

$var1 und $var2 man kann in diese felder selber was reinschreiben.

wenn $var1 nicht leer ist multipliziere $var3 * $var4 und speichere in $var6
wenn $var2 nicht leer ist multipliziere $var3 * $var5 und speichere in $var7
wenn $var1 und $var2 gesetzt sind addiere $var6 + $var7 und speichere in $var8
wenn nur $var1 oder $var2 gestzt ist speichere auch in $var8

ich glaube das ist jetzt besser und ich habe es anders angefangen

mehlvogel
05-07-2003, 14:37
sach das doch ;)



$var6 = isset($var1) ? $var3 * $var4 : 0;
$var7 = isset($var2) ? $var3 * $var5 : 0;
$var8 = isset($var1) && isset($var2) ? $var6 + $var7 : 0;
$var8 = $var8 == 0 && isset($var1) ? $var6 : 0;
$var8 = $var8 == 0 && isset($var2) ? $var7 : 0;


Hoffe das reicht so ;)

robiotor
05-07-2003, 14:39
ich werde das sofort ausprobieren mal sehen ob das geht aber es schaut ganz ok aus :)

Pingu
05-07-2003, 14:46
Hmmm,

ich sag mal viele Wege führen nah Rom. Aber irgendwie beschreibst Du zwei unterschiedliche Aufgabenstellungen, z.B. hier:
Original geschrieben von robiotor
die aufgabe

$var1 hat den wert 1
$var2 hat den wert 2
wenn $var1 oder $var2 gesetzt ist multipliziere $var3 mal wert von $var1 oder $var2
wenn $var1 und $var2 gesetzt ist multipliziere $var3 mal wert von $var1 + $var3 mal wert von $var2
und speicher ergebniss in $var4


$var1 = is_numeric($var1) ? $var1 : 0;
$var2 = is_numeric($var2) ? $var2 : 0;
$var4 = $var3 * $var1 + $var3 * $var2;

ups ... oder sie wie mehlvogel gerade schrieb;

Pingu

Pingu
05-07-2003, 14:49
Obwohl .. warum so kompliziert im zweiten Teil?


Original geschrieben von mehlvogel
sach das doch ;)



$var6 = isset($var1) ? $var3 * $var4 : 0;
$var7 = isset($var2) ? $var3 * $var5 : 0;
$var8 = isset($var1) && isset($var2) ? $var6 + $var7 : 0;
$var8 = $var8 == 0 && isset($var1) ? $var6 : 0;
$var8 = $var8 == 0 && isset($var2) ? $var7 : 0;


Hoffe das reicht so ;)

Es reicht doch einfach:


$var6 = isset($var1) ? $var3 * $var4 : 0;
$var7 = isset($var2) ? $var3 * $var5 : 0;
$var8 = $var6 + $var7;



Pingu

robiotor
05-07-2003, 15:10
warum bekomme ich nun ein fehlermeldung

Fatal error: Unsupported operand types in line 183

so schaut das ganze jetzt aus

$var4 = '2';
$var5 = '3';

$var6 = isset($vhost1) ? $intervall * $var4 : 0;
$var7 = isset($vhost2) ? $intervall * $var5 : 0;
$var8 = isset($vhost1) && isset($vhost2) ? $var6 + $var7 : 0;
$var8 = $var8 == 0 && isset($vhost1) ? $var6 : 0;
$var8 = $var8 == 0 && isset($vhost2) ? $var7 : 0;

und line 183 ist $var6 = isset($vhost1) ? $intervall * $var4 : 0;

robiotor
05-07-2003, 15:38
ok nochmal umgenaut

$var4 = 2;
$var5 = 3;

$var6 = (isset($vhost1)) ? '$intervall * $var4' : '0';
$var7 = (isset($vhost2)) ? '$intervall * $var5' : '0';
$var8 = (isset($vhost1)) && isset($vhost2) ? $var6 + $var7 : '0';
$var8 = $var8 == 0 && isset($vhost1) ? $var6 : 0;
$var8 = $var8 == 0 && isset($vhost2) ? $var7 : 0;

aber in $var8 steht dann $intervall * $var4 als ausgabe nicht die berechnung

robiotor
05-07-2003, 15:41
noch ein mal umgebaut und dann liefert $var8 eine 0 egal was ich mache

$var4 = 2;
$var5 = 3;

$var6 = (isset($vhost1)) ? '$intervall' * '$var4' : '0';
$var7 = (isset($vhost2)) ? '$intervall' * '$var5' : '0';
$var8 = (isset($vhost1)) && isset($vhost2) ? $var6 + $var7 : '0';
$var8 = $var8 == 0 && isset($vhost1) ? $var6 : 0;
$var8 = $var8 == 0 && isset($vhost2) ? $var7 : 0;

Pingu
05-07-2003, 16:05
Vielleicht schaust Du mal hier nach: http://www.php.net/manual/de/language.types.php
Oder hier: http://www.php.net/manual/de/language.types.string.php

Pingu

mehlvogel
05-07-2003, 16:20
meine letzten beiden waren auch falsch das muss sein:

$var8 = $var8 == 0 && isset($vhost1) ? $var6 : $var8;
$var8 = $var8 == 0 && isset($vhost2) ? $var7 : $var8;

Pingu
05-07-2003, 16:37
Original geschrieben von mehlvogel
meine letzten beiden waren auch falsch das muss sein:

$var8 = $var8 == 0 && isset($vhost1) ? $var6 : $var8;
$var8 = $var8 == 0 && isset($vhost2) ? $var7 : $var8; Die kann man doch ganz weglassen. Denn
$var8 = $var6 + $var7;
reicht doch. Denn entweder ist $var6 = 0 oder $var7 = 0, denn wird gerechnet $var8 = 0 + $var7 = $var7 bzw. $var8 = $var6 + 0 = $var6 oder eben $var8 = $var6 + $var7. Damit sind ja alle Fälle abgedeckt. Denn die vorherigen stellen ja sicher, daß die Variablen richtig gesetzt bzw. 0 sind.

Pingu

robiotor
05-07-2003, 20:03
nun bekomme ich immer 20 egal was ich mache

$var3 = 2;
$var4 = 4;
$var5 = 6;
$var6 = (isset($_POST['vhost1'])) ? $var3 * $var4 : 0;
$var7 = (isset($_POST['vhost2'])) ? $var3 * $var5 : 0;
$var8 = isset($var1) && isset($var2) ? $var6 + $var7 : 0;
$var8 = $var6 + $var7;