if..else funktioniert nicht richtig

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • if..else funktioniert nicht richtig

    Hallo,

    ich habe diese if else schleife:

    PHP-Code:
    if($row[Kongress]="11"){$kongresspreis="100";}
    elseif(
    $row[Kongress]="12"){$kongresspreis="150";}
    elseif(
    $row[Kongress]="13"){$kongresspreis="10";}
    else{
    $kongresspreis="15";} 
    warum schreibt er mir entweder den ersten (100) oder den letzten wert (15) in die Datenbank?!?

    Hab schon gesucht aber keine antwort gefunden

    LG
    whistler

  • #2
    mal ganz davon abgesehen dass es $row['Kongress'] heißt (da ist ein Unterschied!), wird dort kein anderer Wert drinne stehen.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Du vergleichst überhaupt nicht (a == b) sondern weist nur zu (a = b)!

      http://de3.php.net/manual/en/languag...comparison.php

      Kommentar


      • #4
        danke mal für die tipps, leider funktionert es noch nicht.

        aber wie schaffe ich es dann?

        kann an statt
        if...
        elseif....


        auch

        if....
        if...
        if...

        schreiben? oder is das kompletter schwachsinn? Problem ist weiterhin, dass er mit entweder den letzten wert oder den ersten nimmt

        Kommentar


        • #5
          Zeig doch mal bitte deinen aktuellen Code

          Kommentar


          • #6
            PHP-Code:
            <?php
            include("/www/htdocs//admin_/config.php");
            $result mysql_query("SELECT * from XYZ where id='$fid'") or die(mysql_error());
            $row mysql_fetch_array($result);

            if(
            $row['Kongress']=='Mitglieder - Gesamt'){$kongresspreis='100';}
            if(
            $row['Kongress']=='Mitglieder - Freitag'){$kongresspreis='40';}
            if(
            $row['Kongress']=='Mitglieder - Samstag'){$kongresspreis='70';}

            $query="update XYZ set kongresspreis=$kongresspreis where id=$fid";
            mysql_query($query$db) or die(mysql_error()) ;
            ?>

            Diese Datei wird per include aufgerufen, id nimmt er auch von der formulardatei mit ( mysql_insert_id())

            Kommentar


            • #7
              Re: if..else funktioniert nicht richtig

              Du kannst in diesem Fall auch mehrere if anwenden, aber mit if-elseifs-else oder einem switch wäre es sauberer:
              PHP-Code:
              if ($row['Kongress'] == 11) {
                  
              $kongresspreis 100;
              } elseif (
              $row['Kongress'] == 12) {
                  
              $kongresspreis 150;
              } elseif (
              $row['Kongress'] == 13 ) {
                  
              $kongresspreis 10;
              } else {
                  
              $kongresspreis 15;

              PHP-Code:
              switch ($row['Kongress']) {
                  case 
              11$kongresspreis 100; break;
                  case 
              12$kongresspreis 150; break;
                  case 
              13$kongresspreis 10; break;
                  default: 
              $kongresspreis 15;

              Schau ruhig mal 10 Minuten auf diese Beispiele und überleg, warum ich 11 und 100 statt "11" und "100" verwende.

              Kommentar


              • #8
                ok - *schau*

                Kommentar


                • #9
                  warum die "" weg sind, weiß ich nicht.... es geht!! danke )))

                  Kommentar


                  • #10
                    Original geschrieben von whistler81
                    warum die "" weg sind, weiß ich nicht....
                    Du weist den Variablen eine ganze Zahl, also einen Integerwert zu. Einfache/Doppelte Anführungsstriche sind bei Integerwerten nicht nötig, sondern nur bei Zeichenketten (Strings).

                    Kommentar

                    Lädt...
                    X