Frage zu einer if-Abfrage

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

  • Frage zu einer if-Abfrage

    Hallo,

    ich würde mich über Hilfestellung bezgl. folgender Sache freuen:

    In einem Adminbereich möchte ich Themen bearbeiten. Wenn ich ein Thema greife, dann hinterlasse ich einen Unix-Timestamp der Bearbeitungs-Startzeit. Der Status (Spalte "fertig") ist dabei auf "nein" gesetzt. Wenn ich mir dasselbe Thema noch einmal greife und den Status auf fertig=ja setze, soll er mir einen Unix-Timestamp in die Spalte tstampende setzen. Ich möchte dann bei einer if-Abfrage eine Variable "setendtstamp" definieren, die mir im Falle fertig=ja einen Unix-Timestamp einträgt. Ist der Status auf nein, so soll das Feld einfach leer bleiben.

    Wäre super, wenn mir da jemand behilflich sein könnte.

    Gruß,
    Andi

  • #2
    dann mach doch einfach in Deiner if Abfrage

    if($weissnicht== irgendwas)
    $ende = time(); // Zeitstempel
    Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

    Kommentar


    • #3
      Ich habe einen Vorgang ändern müssen. Unter einer Bedingung muss ich zwei Tabellen verändern. In die eine schreibe ich einen Insert, die andere erfährt im Falle X ein Update. Hier ist mein Code, kann mir jemand verraten, warum die Tabelle eintrag nicht aktualisiert wird? Wäre nett.

      PHP-Code:
      <?php if(isset($comment)) 
      $sql "INSERT INTO bearbeiten
              VALUES ('','
      $e_id','$name','$datum','$zeit','$handlung','$fertig',UNIX_TIMESTAMP(),'$tstampende')";
              
      $ergebnis mysql_query($sql);
      if (!
      $tstampende== 0) {
      $sql "UPDATE eintrag SET
              
      $fertig = 'ja'
              WHERE e_id = '
      $e_id'";
      $eintragen mysql_query($sql);
      }
      ?>
      $tstampende soll den Unix-Timestamp nur dann erhalten, wenn der Status 'fertig' auf "ja" gesetzt wurde.
      Zuletzt geändert von AndiA; 15.04.2005, 12:05.

      Kommentar


      • #4
        PHP-Code:
        (!$tstampende== 0


        vielleicht
        PHP-Code:
        ($tstampende != 0
        ?

        Kommentar


        • #5
          Oh, danke, dass hatte ich übersehen.

          Ich komme leider immer noch nicht weiter. Folgendes möchte ich realisieren: Wenn man in der Administration bei einem Thema in einer Formular-Liste auf fertig = "ja" klickt, soll sowohl in der Tabelle "bearbeiten" ein neuer Eintrag erscheinen (was auch funktioniert), aber zusätzlich soll in der Tabelle "eintrag" der Status auf fertig = "ja" gesetzt werden. Das funktioniert nicht. Es liegt wohl daran, dass meine if-Abfrage nicht funktioniert. Diese soll folgendes tun: Wenn der Status auf fertig = "ja" gesetzt wird, soll in der Tabelle "bearbeiten" ein Unix-Timestamp in die Spalte "tstampende" eingetragen. Wenn der Status nicht auf fertig = "ja" gesetzt wird, soll kein Stamp eingetragen werden. Mir fehlt die zündende Idee, wie das funktionieren soll. Weiß jemand bescheid?

          Kommentar


          • #6
            Hat denn jemand einen Hinweis?

            Kommentar


            • #7
              PHP-Code:
              if ($feld_in_dem_der_status_steht == 'ja') {
                
              //hier das bearbeiten der datenbank

              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                hi mrhappiness,

                danke für deine hilfe. ich habe jetzt folgenden code, allerdings klappt es noch nicht, dass er "tstampende" nur dann einträgt, wenn man den status auf "ja" setzt. kannst du vielleicht nochmal schauen?

                andi

                PHP-Code:
                 <?php if(isset($comment))
                $sql "INSERT INTO bearbeiten
                        VALUES ('','
                $e_id','$name','$datum','$zeit','$handlung','$fertig',UNIX_TIMESTAMP(),UNIX_TIMESTAMP())";
                        
                $ergebnis mysql_query($sql);
                if (
                $fertig == "ja") {
                $sql "UPDATE eintrag SET
                        
                $fertig = 'ja'
                        WHERE e_id = '
                $e_id'";
                $eintragen mysql_query($sql);
                }
                ?>

                Kommentar


                • #9
                  1. aussagen wie: es geht noch nicht, helfen nicht wirklich
                  2. wie wäre es mal mit einer Fehlerbeschreibung
                  3. mal mysql_error() benutzt?

                  4. was soll dein Code da machen?
                  PHP-Code:
                  if(isset($comment))
                  $sql "INSERT INTO bearbeiten
                          VALUES ('','
                  $e_id','$name','$datum','$zeit','$handlung','$fertig',UNIX_TIMESTAMP(),UNIX_TIMESTAMP())";
                  //das sieht wie ein Insert aus,
                          
                  $ergebnis mysql_query($sql);
                  //und fügt er was ein?
                  if ($fertig == "ja") {
                  //wo kommt $fertig her?
                  $sql "UPDATE eintrag SET
                          
                  $fertig = 'ja'
                          WHERE e_id = '
                  $e_id'";
                  //wieso hast du eine Spalte namens ja ?? $fertig soll ja mit 'ja' gefüllt sein.
                  $eintragen mysql_query($sql);
                  //und funzt das update?

                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    Eine Fehlermeldung bekomme ich leider nicht.

                    Der Insert funktioniert, das "fertig" soll er sich aus dem soeben abgeschickten Formular holen. Markiert man da $fertig mit "ja", so soll ein Unix-Stamp gesetzt werden. Markiert man "nein" soll eine 0 eingetragen werden.

                    Kommentar


                    • #11
                      PHP-Code:
                      if(isset($comment))
                          
                      $sql "INSERT INTO bearbeiten
                              VALUES ('','
                      $e_id','$name','$datum','$zeit','$handlung','$fertig
                              UNIX_TIMESTAMP(),UNIX_TIMESTAMP())"
                      ;
                              
                      $ergebnis mysql_query($sql);
                      }
                      if (
                      $fertig == "ja") {    //wo kommt $fertig her?
                          
                      $sql "UPDATE eintrag SET
                              
                      $fertig = 'ja'
                              WHERE e_id = '
                      $e_id'";
                          echo 
                      $sql// enthält SET ja = 'ja' WHERE - ist das gewollt?!?
                          
                      $eintragen mysql_query($sql);

                      Zuletzt geändert von onemorenerd; 18.04.2005, 10:47.

                      Kommentar


                      • #12
                        Ja, wie gesagt soll das $fertig aus dem Formular kommen, dass ich per action="<? $comment ?>" absende.

                        Doch, das Where ist gewollt. Ich definiere damit ja, welche e_id er Updaten soll. Oder ich verstehe dich jetzt nicht richtig.

                        Kommentar


                        • #13
                          Ersetze im UPDATE-Befehl das $fertig = 'ja' durch korrekten_Namen_der_Spalte = 'ja'

                          Kommentar


                          • #14
                            Die Spalte heißt fertig. Da wird ja nur "ja" oder "nein" eingetragen, daher diese etwas blöde Bezeichnung.

                            Ich habe das übrigens mal etwas erweitert. Sieht jemand einen Fehler? Es will einfach nicht funktionieren. Bis auf die Geschichte mit dem Timestamp funktioniert auch alles.

                            PHP-Code:
                            <?php if(isset($comment))
                            $sql "INSERT INTO bearbeiten
                                    VALUES ('','
                            $e_id','$name','$datum','$zeit','$handlung','$fertig',UNIX_TIMESTAMP(),'$time')";
                                    
                            $ergebnis mysql_query($sql);
                            if (
                            $fertig == "ja") {
                            $time "UNIX_TIMESTAMP()";
                            $sql "UPDATE eintrag SET
                                    
                            $fertig = 'ja'
                                    WHERE e_id = '
                            $e_id'";
                            $eintragen mysql_query($sql);
                            }
                            else {
                            $sql "UPDATE eintrag SET
                                    
                            $tstampende = 0
                                    WHERE e_id = '
                            $e_id'";
                            }

                            ?>

                            Kommentar


                            • #15
                              Original geschrieben von AndiA
                              Die Spalte heißt fertig. Da wird ja nur "ja" oder "nein" eingetragen, daher diese etwas blöde Bezeichnung.
                              Dann musst Du sie im UPDATE-Befehl aber auch mit 'fertig' ansprechen und nicht mit '$fertig' - denn $fertig hat entweder den Wert 'ja' oder 'nein' aber niemals den Wert 'fertig'...
                              Zuletzt geändert von Der Quästor; 18.04.2005, 11:51.

                              Kommentar

                              Lädt...
                              X