php - mysql - speicher problem

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

  • php - mysql - speicher problem

    hallo @ all.

    Ich habe eine DB. Da speichere ich nach dem ersten Formular die Anzahl der Tage in das Feld anzeige_ende.

    Dann frage ich es ab, und berechne vom aktuellen timestamp x Tage hinzu. Dann speichere ich alles in der Datenbank. Dabei speichert er anzeige_ende NICHT ab, aber anzeige_status und anzeige_time! Warum?
    Hier ein stückchen Code.
    PHP-Code:
    $select             "SELECT anzeige_ende FROM oxami_anzeige WHERE anzeige_id = '".$_GET['art']."' LIMIT 0,1";
    $sql                mysql_query($select);
    $ds                 mysql_fetch_object($sql);
    $anzeige_time       mktime();
    $anzeige_ende_time  mktime(date("H"), date("i"), date("s"),
    date("m"), date("d") + $ds->anzeige_endedate("Y")) - (60*60);

    $anzeige_update     "UPDATE `oxami_anzeige` SET 
    `anzeige_ende` = '"
    .$anzeige_ende_time."', 
    `anzeige_time` = '"
    .$anzeige_time."', 
    `anzeige_status` = 1 WHERE anzeige_id = "
    .$_GET['art']." ";

    $anzeige_sql        mysql_query($anzeige_update);

    echo 
    $anzeige_update


    Danke für eure Hilfe

    [COLOR=red]Anmerkung:
    Wenn ich die Query mit echo ausgeben lasse und die copy&paste in PHPMyAdmin einfüge, klappt die Query komplett....[/COLOR]
    [COLOR=green]Anmerkung 2:
    Es geht weder lokal noch auf meinem WebServer.[/COLOR]

    Die Felder sind INT(15) bei den Timestamps.
    Zuletzt geändert von bofan; 22.12.2007, 16:45.
    Beachte: Dumm ist, wer Dummes tut.

  • #2
    Wo ist der Query-Dump und die eventuelle Fehlermeldung?

    Kommentar


    • #3
      fehlermeldungen hab ich net...

      hab die query per echo ausgegeben...

      Code:
      UPDATE oxami_anzeige SET `anzeige_ende` = '1198429156',
      `anzeige_time` = '1198346356', `anzeige_status` = 1 WHERE 
      anzeige_id = '31'
      Zuletzt geändert von bofan; 22.12.2007, 19:12.
      Beachte: Dumm ist, wer Dummes tut.

      Kommentar


      • #4
        Nochmal zur "verdeutlichung"

        Ich erhalte per
        ECHO

        UPDATE `oxami_anzeige` SET `anzeige_ende` = '', `anzeige_time` = '1198346684', `anzeige_status` = 1 WHERE anzeige_id = '31'

        wenn ich diesen code benutze:

        PHP-Code:
        $select "SELECT anzeige_ende FROM oxami_anzeige WHERE anzeige_id = '".$_GET['art']."' LIMIT 0,1";
        $sqlmysql_query($select);
        $dsmysql_fetch_object($sql);
        $anzeige_time       mktime();
        $anzeige_ende_time  $anzeige_time + ($ds->anzeige_ende*24*60*60);
        $anzeige_ende_time  $anzeige_ende_time - (60*60);
        $anzeige_update     "UPDATE `oxami_anzeige` SET
        `anzeige_ende` = '"
        .$anzeige_ende."', `anzeige_time` = 
        '"
        .$anzeige_time."', `anzeige_status` = 1 WHERE anzeige_id = 
        '"
        .$_GET['art']."'";
        $anzeige_sql        mysql_query($anzeige_update); 
        und speichern tut er:

        anzeige_ende 0
        anzeige_status 1
        anzeige_time 1198346685
        Beachte: Dumm ist, wer Dummes tut.

        Kommentar


        • #5
          nimmst zum eintrag : $anzeige_ende und setzt es aber in ner varable $anzeige_ende_time fest - denk ma drüba nach :-D
          anzeige_update = "UPDATE `oxami_anzeige` SET
          `anzeige_ende` = '".$anzeige_ende."', `anzeige_time` =
          '".$anzeige_time."', `anzeige_status` = 1 WHERE anzeige_id =
          '".$_GET['art']."'";
          Signatur-Text ...

          Kommentar


          • #6
            danke
            hab die zeile geändert....
            PHP-Code:
            $anzeige_time       mktime();
            $anzeige_ende_time  $anzeige_time + ($ds->anzeige_ende*24*60*60);
            $anzeige_ende_time  $anzeige_ende_time - (60*60);
            $anzeige_update "UPDATE `oxami_anzeige` SET `anzeige_ende` =
            '"
            .$anzeige_ende_time."', `anzeige_time` = '".$anzeige_time."',
            `anzeige_status` = 1 WHERE anzeige_id = '"
            .$_GET['art']."'";
            $anzeige_sql mysql_query($anzeige_update); 
            da kommt raus:
            Code:
            UPDATE `oxami_anzeige` SET `anzeige_ende` = '1198603152', 
            `anzeige_time` = '1198347552', `anzeige_status` = 1 WHERE 
            anzeige_id = '31'
            und in die DB schreibt er:

            anzeige_ende 1
            anzeige_status 1
            anzeige_time 1198347552

            ich find den fehler nich....
            Beachte: Dumm ist, wer Dummes tut.

            Kommentar


            • #7
              kk wie sind die felder für diese einträge? INT, VARCHAR , BOOLEAN oder wie ?
              Signatur-Text ...

              Kommentar


              • #8
                1 $_GET['art'] ist anfällig für SQL Injections
                2 Numerische SQL Values brauchen keine Anführungszeichen.

                Ausserdem vermisse ich error_reporting() und mysql_error()
                Wir werden alle sterben

                Kommentar


                • #9
                  also... die $_GET[''] variabele hab ich "kontrolliert". Heißt anders.

                  hab das so umgeschrieben:
                  PHP-Code:
                  $artikel            $_GET['art'];
                  $anzeige_time       mktime();
                  $anzeige_update     "UPDATE `oxami_anzeige` SET 
                  `anzeige_time` = "
                  .$anzeige_time.", `anzeige_status` = 1 WHERE 
                  anzeige_id = "
                  .$artikel."";
                  $anzeige_sql        mysql_query($anzeige_update);
                  echo 
                  $anzeige_update;
                  if(
                  $anzeige_sql)
                  {
                    
                  $select "SELECT anzeige_ende FROM oxami_anzeige WHERE 
                    anzeige_id = '"
                  .$_GET['art']."' LIMIT 0,1";
                    
                  $sql mysql_query($select);
                    
                  $ds mysql_fetch_object($sql);
                    
                  $anzeige_ende_time  $anzeige_time 
                    (
                  $ds->anzeige_ende*24*60*60);
                    
                  $anzeige_ende_time $anzeige_ende_time - (60*60);
                    
                  $anzeige_update "UPDATE `oxami_anzeige` SET 
                    `anzeige_ende` = "
                  .$anzeige_ende_time." WHERE anzeige_id = 
                    "
                  .$artikel."";
                    
                  $anzeige_sql        mysql_query($anzeige_update);
                    echo 
                  mysql_error();
                    echo 
                  $anzeige_update;

                  Vor der Ausführung:
                  anzeige_ende 3
                  anzeige_status 0
                  anzeige_time TIMESTAMP_WERT(Vergangenheit)

                  Dann die Ausführung:
                  per echo erscheint:
                  Code:
                  UPDATE `oxami_anzeige` SET `anzeige_time` = 1198349101, 
                  `anzeige_status` = 1 WHERE anzeige_id = 31
                  UPDATE `oxami_anzeige` SET `anzeige_ende` = 1198604701 
                  WHERE anzeige_id = 31
                  ini_set ('error_reporting', E_ALL);
                  ist am anfang meiner global.php bereits aufgerufen.

                  so die db sieht dann so aus:
                  anzeige_ende 2147483647
                  anzeige_status 1
                  anzeige_time 1198349102



                  shit....
                  Zuletzt geändert von bofan; 22.12.2007, 19:53.
                  Beachte: Dumm ist, wer Dummes tut.

                  Kommentar


                  • #10
                    PHP-Code:
                    mysql_query($query)or die(mysql_error()); 
                    was kommt da?
                    Signatur-Text ...

                    Kommentar


                    • #11
                      hab die zeile bearbeitet...

                      PHP-Code:
                      $anzeige_sql        mysql_query($anzeige_update) or die(mysql_error()); 
                      zeigt mir KEINEN fehler an....
                      Beachte: Dumm ist, wer Dummes tut.

                      Kommentar


                      • #12
                        Hast du mal versucht fest was anderes statt dieser Variable in den Query zu schreiben? Hast du evtl. einen Vertipper im DB-Layout?
                        [FONT="Helvetica"]twitter.com/unset[/FONT]

                        Shitstorm Podcast – Wöchentliches Auskotzen

                        Kommentar


                        • #13
                          in der DB heißt das feld
                          anzeige_ende

                          also richtig.

                          und ich meine er speichert ja . aber eben fast das doppelte...
                          Beachte: Dumm ist, wer Dummes tut.

                          Kommentar


                          • #14
                            hmmm. ich hab nochmal alles kontrolliert, warum er da nun das fast verdoppelt, kann keinen fehler entdecken....
                            Beachte: Dumm ist, wer Dummes tut.

                            Kommentar


                            • #15
                              Meine erste Frage hast du offensichtlich ignoriert
                              [FONT="Helvetica"]twitter.com/unset[/FONT]

                              Shitstorm Podcast – Wöchentliches Auskotzen

                              Kommentar

                              Lädt...
                              X