Mit if (..) 2 Anweisungen

hi @ all,

habe nun schon alles probiert. mein prob ist: ich möchte nach einer if-anweisung 2 sachen erledigen. 1. soll er die DB updaten, 2. soll er ne mail an mich schicken das der eintrag vorgenommen wurde.

mein versuch war: (alles in php mit connection)

if (anweisung1 = ‚$anweisung1‘ || anweisung2 = ‚$anweisung2‘) {
$update; // enthält sql-anweisung „UPDATE …“ //
&&
mail (… // alles was rein gehört);

leider hatte ich bis jetzt kein erfolg :frowning: sind denn überhaupt 2 sachen möglich??? oder muss ich das umschreiben?

ich wäre für jede hilfe dankbar!

Thomas

abend locke…

if (anweisung1 = ‚$anweisung1‘ || anweisung2 = ‚$anweisung2‘)
{
$update; // enthält sql-anweisung „UPDATE …“ //
&&
mail (… // alles was rein gehört);
leider hatte ich bis jetzt kein erfolg :frowning: sind denn überhaupt
2 sachen möglich??? oder muss ich das umschreiben?

klar kannst du in if-anweisungen eine variable menge an operationen
vornehmen. sei es deklarationen, funktionsaufrufe oder sonstige
logikabläufe. du hast bei der implementierung mehrere möglichkeiten.
entweder packst du alles in geschweifte klammern(1), führst nur eine
einzelne anweisung aus(2), benutzt eine verkürzte if-anweisung(3),
benutzt funktionen(4) oder wandelst das if-else-statement in eine
switch-anweisung um(5).


folgend php-codebeispiele zu den entsprechenden nummern:
(1)
if( $var == 1 ) {
mysql_query( $meinUpdateSql );
mail( $params );
} else {
$log = „error occured“;
}

(2 unterstützt lediglich eine operation)
if( $var==1 ) echo „var equals 1“;
else echo „var does not equal 0“;

(3)
$var = ( $param==1 ) ? 0 : 1;
(wenn $param den wert 1 hat wird $var zu 0 ansonten zu 1)

(4)
if( $var==0 ) {
doSomeStuff()
} else {
echo „error occured“;
}

function doSomeStuff() {
mysql_uery( $updateSql );
mail( $params );
}

(5)
switch( $var ) {
case 1:
echo „bla“;
doeSomeStuff();
break;
case 0:
echo „eror occured“;
break;
}

hoffe das konnte dir ein wenig weiterhelfen…
so und nun gut nacht…

mfg

zebulon::

Hallo Thomas,

if (anweisung1 = ‚$anweisung1‘ || anweisung2 = ‚$anweisung2‘)
{
$update; // enthält sql-anweisung „UPDATE …“ //
&&
mail (… // alles was rein gehört);

muss heißen

if (anweisung1 ==’$anweisung1’ || anweisung2 ==’$anweisung2’)
{
$update;
mail(alles was rein gehört);
}

Statt = musst du in der Bedingung == schreiben - typischer Anfängerfehler. Das && im Anweisungsblock kannst du dir sparen. Zwischen den geschweiften Klammern, die du zu schließen vergessen hast, können so viele Anweisungen stehen wie du möchtest.

Gruß
Huttatta

P.S.: Re^2: mit if (…) 2 Anweisungen
Hallo nochmal,

if (anweisung1 == ‚$anweisung1‘ || anweisung2 == ‚$anweisung2‘)
{
$update;
mail(alles was rein gehört);
}

nur zur Sicherheit: Benutzt du nur $update oder schreibst du: mysql_query($update);? Zweiteres wäre unbedingt notwendig.

Gruß
Huttatta

Hi,

erstmal Danke für die Hilfe. Aber das problem lag woanders :frowning: Da mein Script auf 2 DB zugreifen musste, habe ich es geteilt und 2 Seiten erstellt. Nun geht alles :wink:

P.S. @huttatta, das war kein Anfängerfehler sondern nur ein Schreibfehler im Tread :wink: ==